好吧,我是一名学生,刚刚从编程世界开始,我正在深入研究C语言,直到我偶然发现了这个练习:
“创建一个模拟掷骰子的程序。程序必须允许用户”下注“1到6之间的数字(确认用户下注的数字实际上在1到6之间)并指出掷骰子的次数(最少10次,最多50次;这也必须经过验证)。如果用户下注的数字是出现次数最多的那个,该程序将打印一条消息“优秀”,如果是第二个,消息将显示“非常好”,依此类推,消息为“好”,“常规”,“坏”和“非常糟糕”,取决于与其他数字相关的投注发生次数。该计划必须显示每个数字出现的次数。
注意:
使用随机数生成(使用srand(time(0)))来表示骰子的投掷。
考虑通过引用使用参数传递。
考虑订购数组以方便练习。“
好的,这就是事情。到目前为止,在我的课堂上,我们已经看到了以下内容:
宏。
For and While。
功能
阵列。
这是我到目前为止所做的:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int max (int x, int y) { //to determine the máximum between 2 given numbers
if (x < y) {
return y;
} else {
return x;
}
}
int main (void) {
int i, random, bet, throws, times[6];
srand(time(0));
// user introduces the bet
printf("Apueste a los dados, elija un número del 1 al 6:\n");
do {
scanf("%d", &bet);
} while (bet < 1 || bet > 6);
printf("Indique cuántas veces se lanzarán los dados (mínimo 10 veces, máximo 50 veces):\n");
// user says how many times the dice will be thrown
do {
scanf("%d", &throws);
} while (throws < 10 || throws > 50);
for (i = 0; i < 6; i++) {
times[i] = 0;
}
// the program rolls the dice and keeps note of how many times a number shows up
for (i = 0; i <= throws ; i++) {
random = ((rand() % 6) + 1);
if (random == 1) {
times[0]++;
}
if (random == 2) {
times[1]++;
}
if (random == 3) {
times[2]++;
}
if (random == 4) {
times[3]++;
}
if (random == 5) {
times[4]++;
}
if (random == 6) {
times[5]++;
}
}
// I don't know how to continue
}"
我的问题是,我该如何完成练习?据说我需要订购一个数组,无论是时间[]还是新的数组(首先是时间[]的副本),然后再进行打印部分,但我不知道该怎么做。
另外,英语不是我的第一语言,所以如果有些事情不可理解,我很抱歉。
提前感谢任何阅读并试图帮助我的人。 问候。