c语言编写摇股子的程序,一道C语言的编程

b0d0da132b0a9b3c692a1ab2b6242da0.png

2018-03-22

骰子点数概率问题 要求:掷10000次,输出6个点数出现的次数和概率

没有错 但是结果不对

请指教

#include "stdafx.h"

#include "stdio.h"

#include "stdlib.h"

#include "time.h"

void main()

{

float num1, num2, num3, num4, num5, num6, i;

int number;

float f1, f2, f3, f4 ,f5 ,f6;

printf("\n\n\n这是一个掷骰子的程序\n");

printf("\n\n在10000次的掷骰子中\n");

srand((unsigned)time( NULL ));

for(i=1;i<=10000;i++)

{

number = rand() % 6 + 1;

if(number==1)

{

num1=num1+1;

}

if(number==2)

{

num2=num2+1;

}

if(number==3)

{

num3=num3+1;

}

if(number==4)

{

num4=num4+1;

}

if(number==5)

{

num5=num5+1;

}

if(number==6)

{

num6=num6+1;

}

}

f1=num1/10000;

f2=num2/10000;

f3=num3/10000;

f4=num4/10000;

f5=num5/10000;

f6=num6/10000;

printf("\n\n点1出现了%d次,",num1);

printf("出现频率%f",f1);

printf("\n\n点2出现了%d次,",num2);

printf("出现频率%f",f2);

printf("\n\n点3出现了%d次,",num3);

printf("出现频率%f",f3);

printf("\n\n点4出现了%d次,",num4);

printf("出现频率%f",f4);

printf("\n\n点5出现了%d次,",num5);

printf("出现频率%f",f5);

printf("\n\n点6出现了%d次,",num6);

printf("出现频率%f",f6);

printf("\n\n\n");

}

1)程序在运行后结果是一些意想不到的我执行后结果是负数,原因就是你没有为num1-num6付初值,所以他们是随机产生的。

2)付了初值以后所有结果都是0,原因是num1-num5还有i都是整数,而你让他们为float,所以产生了错误。 改过后的程序如下:

//#include "stdafx。h"

#include "stdio。h"

#include "stdlib。h"

#include "time。 h"

void main()

{

int num1, num2, num3, num4, num5, num6;

num1=num2=num3=num4=num5=num6=0;

i...全部

1)程序在运行后结果是一些意想不到的我执行后结果是负数,原因就是你没有为num1-num6付初值,所以他们是随机产生的。

2)付了初值以后所有结果都是0,原因是num1-num5还有i都是整数,而你让他们为float,所以产生了错误。

改过后的程序如下:

//#include "stdafx。h"

#include "stdio。h"

#include "stdlib。h"

#include "time。

h"

void main()

{

int num1, num2, num3, num4, num5, num6;

num1=num2=num3=num4=num5=num6=0;

int number, i;

float f1, f2, f3, f4 ,f5 ,f6;

printf("\n\n\n这是一个掷骰子的程序\n");

printf("\n\n在10000次的掷骰子中\n");

srand((unsigned)time( NULL ));

for(i=1;i<=10000;i++)

{

number = rand() % 6 + 1;

if(number==1)

{

num1=num1+1;

}

if(number==2)

{

num2=num2+1;

}

if(number==3)

{

num3=num3+1;

}

if(number==4)

{

num4=num4+1;

}

if(number==5)

{

num5=num5+1;

}

if(number==6)

{

num6=num6+1;

}

}

f1=(float)num1/10000;

f2=(float)num2/10000;

f3=(float)num3/10000;

f4=(float)num4/10000;

f5=(float)num5/10000;

f6=(float)num6/10000;

printf("\n\n点1出现了%d次,",num1);

printf("出现频率%f",f1);

printf("\n\n点2出现了%d次,",num2);

printf("出现频率%f",f2);

printf("\n\n点3出现了%d次,",num3);

printf("出现频率%f",f3);

printf("\n\n点4出现了%d次,",num4);

printf("出现频率%f",f4);

printf("\n\n点5出现了%d次,",num5);

printf("出现频率%f",f5);

printf("\n\n点6出现了%d次,",num6);

printf("出现频率%f",f6);

printf("\n\n\n");

} 。收起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值