c语言问题,求高手解答

使用循环语句和随机函数rand()模拟抛1000000次骰子,统计出现1-6点的次数及所占比例,最后输出,如下图所示:(提示:(1)系统函数rand():产生0-3276... 使用循环语句和随机函数rand()模拟抛1000000次骰子,统计出现1-6点的次数及所占比例,最后输出,如下图所示:
(提示:(1)系统函数rand():产生0-32767随机整数,头文件是stdlib.h;系统函数srand(int seed):seed相同,产生随机数中也相同,头文件是stdlib.h;系统函数time(0):返回系统时间的总秒数,头文件是time.h; (2)要产生1-6的随机整数,方法是得到1+rand()%6;(3)分类统计要用到多分支语句。)
展开
 我来答
splashchaos
推荐于2016-09-05 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3342
采纳率:0%
帮助的人:3622万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char **argv)
{
    int dices[6] = {0,0,0,0,0,0};
    int dots, i;
    long total = 1000000;
    long l;

    srand(time(NULL));    
    for (l = 0; l < total; ++l) {
        dots = 1 + rand() % 6;
        /* dices[dots-1]++; */  /*建议老师,这一句就可省下面的switch语句*/
        switch (dots) {
            case 1:
                dices[0]++;
                break;
            case 2:
                dices[1]++;
                break;
            case 3:
                dices[2]++;
                break;            
            case 4:
                dices[3]++;
                break;
            case 5:
                dices[4]++;
                break;
            case 6:
                dices[5]++;
                break;
            default:
                 ;      
        }
    }

    for (i = 0; i < 6; ++i)
        printf("出现%d点的次数为 %d, 所占比例为 %g%%\n", i+1, dices[i], double(dices[i])/total*100.0);    

    return 0;
}

运行:

出现1点的次数为 166492, 所占比例为 16.6492%
出现2点的次数为 166509, 所占比例为 16.6509%
出现3点的次数为 166553, 所占比例为 16.6553%
出现4点的次数为 166176, 所占比例为 16.6176%
出现5点的次数为 166825, 所占比例为 16.6825%
出现6点的次数为 167445, 所占比例为 16.7445%



推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式