gpt4 book ai didi

C、使用随机数并将它们存储在数组中

转载 作者:太空宇宙 更新时间:2023-11-04 05:52:39 25 4
gpt4 key购买 nike

只是尝试生成 60-100 之间的 25 个随机数并将它们存储在数组中。不过需要一些确认。这是它的样子吗?

int main () {

int temp[25], i, sum;


srand( (unsigned) time(NULL) );

for (i=0; i <= 25; i++) {

get_value(i);
sum += temp[25]; //Eventually will be added together to find avg

};


}


int get_value(int temp_random) {
return((rand()%40)+60);

}

最佳答案

你调用了未定义的行为

  • 使用超出范围的数组下标。
  • 使用未初始化变量的值sum具有自动存储期限,这是不确定的。

sum += temp[25];应该是 sum += temp[i]; ,
并且循环条件应该是 i < 25i < (int)(sizeof(temp)/sizeof(*temp))而不是 i <= 25 .

还有 sum必须初始化。

除了未定义的行为,您的程序存在以下问题:

  • 什么 get_value()返回被丢弃。
  • get_value()未使用且似乎毫无意义的强化 temp_random .
  • 函数在声明之前使用。
  • get_value()不会返回 100因为rand()%40将仅为 0 到 39 之间的数字,包括 0 到 39。

另请注意,属于 for 的 block 后面的分号不需要循环。 (虽然这没有害处)

你的代码应该是这样的:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define GENERATE_NUM 25
#define GENVALUE_MIN 60
#define GENVALUE_MAX 100

int get_value(void);

int main (void) {

int temp[GENERATE_NUM], i, sum = 0;

srand( (unsigned) time(NULL) );

for (i=0; i < GENERATE_NUM; i++) {

temp[i] = get_value();
sum += temp[i]; //Eventually will be added together to find avg

}

return 0;
}

int get_value(void) {
return((rand() % (GENVALUE_MAX - GENVALUE_MIN + 1)) + GENVALUE_MIN);

}

关于C、使用随机数并将它们存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35952033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com