c-赋值给数组时rand()的初始值设定项无效


#include <stdio.h>
#include <stdlib.h>
int main(){
int n;
for(int i= 0;i < 5; i++ ){
//type arrayName[arraysize];
int arrayName[5] = rand();
printf("array[%d] = %dn",i,arrayName[i]);
}
return 0;
}

我得到一个关于rand((的无效初始值设定项的错误;如何向数组中添加一个随机数并给它一个范围?

记住,不能用随机变量初始化数组,比如必须逐项填写

array[i] = rand();

你只需要改变你定义变量的位置,比如这个

#include <stdio.h>
#include <stdlib.h>
int main(){
int arrayName[5];
int n;
int i;
for(i = 0;i < 5; i++ ){
arrayName[i] = rand();
printf("array[%d] = %dn",i,arrayName[i]);
}
return 0;
}

这是一个用随机数填充数组的函数

void generateFunction(int* arr, int len) {
while (len-- > 0) {
*arr++ = rand();
}
}

或者以简单的方式

void generateFunction(int* arr, int len) {
int i;
for (i = 0; i < len; i++) {
arr[i] = rand();
}
}

这里缺少两件事:

  1. 您尚未声明要使用的数组。声明如下:
int arrayName[5];
  1. rand()调用不返回整数数组,只返回一个整数。因此,您需要替换此:
int arrayName[5] = rand();

这个:

arrayName[i] = rand();

最新更新