【发布时间】:2020-05-17 17:49:50
【问题描述】:
我相信这与我使用roll_die 有关。如果我只是在正文中使用 rand()%6+1 而不是 roll_die 它可以工作,但我想使用该功能。另外,有什么方法可以使用更少的行来打印结果以使我的代码更短?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int roll_die() {
return 1 + rand() % 6;
}
int main()
{
srand((unsigned) time(0));
int roll_die;
int first_die_roll, second_die_roll, total;
int roll_result[13] = {0};
int count = 36000;
while(count--) {
first_die_roll = roll_die;
second_die_roll = roll_die;
total = first_die_roll + second_die_roll;
roll_result[total]++;
}
printf("Computed die rolling frequencies for 36,000 rolls:\n");
printf("Sum = 2; Frequency = %d ; Percentage = %f%c\n", roll_result[2], (float)roll_result[2]/36000 * 100, '%');
printf("Sum = 3; Frequency = %d ; Percentage = %f%c\n", roll_result[3], (float)roll_result[3]/36000 * 100, '%');
printf("Sum = 4; Frequency = %d ; Percentage = %f%c\n", roll_result[4], (float)roll_result[4]/36000 * 100, '%');
printf("Sum = 5; Frequency = %d ; Percentage = %f%c\n", roll_result[5], (float)roll_result[5]/36000 * 100, '%');
printf("Sum = 6; Frequency = %d ; Percentage = %f%c\n", roll_result[6], (float)roll_result[6]/36000 * 100, '%');
printf("Sum = 7; Frequency = %d ; Percentage = %f%c\n", roll_result[7], (float)roll_result[7]/36000 * 100, '%');
printf("Sum = 8; Frequency = %d ; Percentage = %f%c\n", roll_result[8], (float)roll_result[8]/36000 * 100, '%');
printf("Sum = 9; Frequency = %d ; Percentage = %f%c\n", roll_result[9], (float)roll_result[9]/36000 * 100, '%');
printf("Sum = 10; Frequency = %d ; Percentage = %f%c\n", roll_result[10], (float)roll_result[10]/36000 * 100, '%');
printf("Sum = 11; Frequency = %d ; Percentage = %f%c\n", roll_result[11], (float)roll_result[11]/36000 * 100, '%');
printf("Sum = 12; Frequency = %d ; Percentage = %f%c\n", roll_result[12], (float)roll_result[12]/36000 * 100, '%');
return 0;
}
【问题讨论】:
-
欢迎来到 SO!如果要调用函数,请使用
roll_die()而不是roll_die。int roll_die表示您正在使用未初始化的内存,您可以将其移除。
标签: c