鱼C论坛

 找回密码
 立即注册
查看: 768|回复: 2

C语言

[复制链接]
发表于 2023-11-20 21:52:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想问一下bili为什么等于0?
sumcishu 和cishu都不为0
  1. #if(1)

  2. #include <stdio.h>
  3. #include <time.h>

  4. double moni()
  5. {
  6.         int i;
  7.         double bili;
  8.         int y = 0;
  9.         int z = 0;
  10.         int suiji;
  11.         int sum = 0;
  12.         int shijian;
  13.         int switch2;
  14.         int cishu;
  15.         int chushi=0;
  16.         int sjs[100] = { 0 };
  17.         char shijianming[99][99];
  18.         double gailv[99] = { 0 };
  19.         int sumcishu[99] = { 0 };
  20.         double gailvsum = 0;
  21.         printf("有几个事件?\n");
  22.         scanf_s("%d", &shijian);
  23.         for (;;)
  24.         {
  25.                 y = 0;
  26.                 sum = 0;
  27.                 for (i = 0;i < shijian;i++)
  28.                 {
  29.                         printf("输入第%d个事件是什么\n", i + 1);
  30.                         scanf_s("%s", shijianming[i], 99);
  31.                         printf("输入第%d个事件的概率(0.01至1)\n", i + 1);
  32.                         scanf_s("%lf", &gailv[i]);
  33.                         sum = sum + gailv[i] * 100;
  34.                         for (;y < sum;y++)
  35.                         {
  36.                                 sjs[y] = i;
  37.                         }
  38.                         gailvsum = gailvsum + gailv[i];
  39.                 }
  40.                 if (gailvsum != 1)
  41.                 {
  42.                         printf("输入的概率总和不为1,请重新输入\n");
  43.                         gailvsum = 0;
  44.                         system("pause");
  45.                         system("cls");
  46.                 }
  47.                 else
  48.                 {
  49.                         break;
  50.                 }
  51.         }
  52.         for (;;)
  53.         {
  54.                 printf("输入1进行单步测试,输入2进行指定次数调试\n");
  55.                 scanf_s("%d", &switch2);
  56.                 switch (switch2)
  57.                 {
  58.                 case(1):

  59.                         break;
  60.                 case(2):
  61.                         printf("你想进行多少次测试?\n");
  62.                         scanf_s("%d", &cishu);
  63.                         srand((unsigned)time(NULL));
  64.                         for (z = 0;z < cishu;z++)
  65.                         {

  66.                                 suiji = rand() % 99 + 0;
  67.                                 sumcishu[sjs[suiji]]++;
  68.                                 printf("第%d次:%s\n", z + 1, shijianming[sjs[suiji]]);
  69.                         }
  70.                         for (i = 0;i < shijian;i++)
  71.                         {
  72.                                 bili = sumcishu[i] / cishu;
  73.                                 printf("其中%s的次数为%d,占比为%d%%\n", shijianming[i], sumcishu[i], bili);
  74.                         }
  75.                         break;
  76.                 default:
  77.                         printf("输入1或者2");
  78.                         system("pause");
  79.                         system("cls");
  80.                 }
  81.         }
  82. }

  83. void main()
  84. {
  85.         int switch1 = 0;
  86.         printf("输入1进行模拟实验,输入2进入概率计算。\n");
  87.         switch1 = scanf_s("%d", &switch1);
  88.         if (switch1 == 1)
  89.         {
  90.                 moni();
  91.         }
  92. }
  93. #endif
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-20 21:52:12 | 显示全部楼层
bili等于0的原因是因为在计算比例时,sumcishu[ i]和cishu都是整数类型,所以bili会被计算成整数。解决方法是将sumcishu[ i]或cishu其中一个转换为double类型,以便得到正确的比例值。

  1. bili = (double)sumcishu[ i] / cishu;
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-20 21:54:39 | 显示全部楼层
isdkz 发表于 2023-11-20 21:52
bili等于0的原因是因为在计算比例时,sumcishu[ i]和cishu都是整数类型,所以bili会被计算成整数。解决方法 ...

这样会得出一个巨大的数字,没解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 11:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表