骰子点数概率问题
要求:掷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; 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"); } 。
程序设计上没有什么问题。但有三点需要改一下。 1.num1...num6这六个变量只是记录出现的次数。故不能用浮点数,应该 用整型,如int ,UINT 2.一般在变量初次使用之前应该初始化。这是一个很好的习惯。 int num1 = 0, num2 = 0, num3 = 0, num4 = 0, num5 = 0, num6 = 0, i; 3.刚才把num1等改成了整形, f1=num1/10000; ->f1=(float)num1/10000; //强制转换成浮点数
答:用一个骰子投掷3次的概率: 1、如果把这3次看作没有联系的3个独立事件,那么每个事件出现1至6点中任何一个点数的概率都是:1/6。 2、如果把这3次看作一个整体...详情>>
答:桌面图标是无法自动得到,因为图标的存在与否应用程序无法知道。 如果你确认在桌面上可能会有这个图标,那么你只要遍历桌面所有的图标,然后把指向该应用程序的图标都更改...详情>>