我是一名小学生,当谈到c并需要帮助将5个随机值存储在一个数组中并输出它们。继承人在哪里。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
struct score_card {int A_ones; int B_twos; int C_threes; int D_fours; int E_fives; int F_sixes; int G_chance;};
int dice_rolls[5];
int randomize(void);
int value;
int main(void) {
struct score_card test;
randomize;
int i;
for(i = 0; i <= 4; i++){
printf("%d\n", dice_rolls[i]);
}
printf("\n");
return 0;
}
int randomize(void){
int i;
srand(time(0));
for(i = 0; i <= 4; i++){
value = rand() % 6 + 1;
dice_rolls[i] = value;
}
}
输出是: 6294304 6294308 6294312 6294316 6294320
目标是使用模块化除法从1 - > 6获取值并将它们存储在dicerolls数组中。
答案 0 :(得分:1)
我看到两个直接的问题。
首先。你没有用换行符终止你的随机数。这就是为什么他们都在一个大的序列中串联起来。将输出行更改为:
printf("%d\n", &dice_rolls[i]);
其次,你实际上并没有调用 randomize
。调用它的正确方法是:
randomize();
语句randomize;
只是一个表达式,为您提供函数的地址。在这种情况下,它与表达式42;
一样无用,它也什么都不做。但它是有效的C,因此编译器不一定会抱怨。