标题:for语句嵌套问题
只看楼主
萧哲君
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2016-10-30
结帖率:87.5%
已结贴  问题点数:10 回复次数:4 
for语句嵌套问题
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

float tjcs(int);

int main ()
{
    int totalnumbers;
    float percentage;
    int totals;
    int i,j;

    printf("\nPlease enter the totalnumbers:");
    scanf("%f",&totalnumbers);
    printf("\nPlease enter the totals:");
    scanf("%d",&totals);
    for (j=1;j<=totals;j++)
    {
        percentage=tjcs(totalnumbers);
        printf("The percentage of %d is %f",j,percentage);
    }
}
float tjcs(int totalnumbers)
{
    int randvalue;
    int total=0;
    int i;
    float percentage;

    srand(time(NULL));

    for (i=1;i<=totalnumbers;i++)
    {
        randvalue=1+(int)rand() % 100;
        if(randvalue>50)
        total++;
    }
    percentage=total/totalnumbers;
    return(percentage);
}
此程序是本人所编求在有totals种可能,且每种可能性均相同的概率事件中,连续模拟实验totalnumbers次时,每种可能的概率。

但运行时出现问题,求解答是何原因。
搜索更多相关主题的帖子: percentage include 
2016-11-05 15:36
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:4 
主要是数据类型不匹配问题。int型与float型的混合运算要注意。
干脆全部都改用float型……
修改后的代码如下,主要是数据类型的修改:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

float tjcs(float);

int main ()
{
    float totalnumbers;
    float percentage;
    float totals;
    int i,j;

    printf("\nPlease enter the totalnumbers:");
    scanf("%f",&totalnumbers);
    printf("\nPlease enter the totals:");
    scanf("%f",&totals);
    for (j=1;j<=totals;j++)
    {
        percentage=tjcs(totalnumbers);
        printf("The percentage of %d is %f\n",j,percentage);//记得换行啊~
    }
}
float tjcs(float totalnumbers)
{
    int randvalue;
    int total=0;
    int i;
    float percentage;

    srand(time(NULL));

    for (i=1;i<=totalnumbers;i++)
    {
        randvalue=1+(int)rand() % 100;
        if(randvalue>50)
        total++;
    }
    percentage=total/totalnumbers;
    return(percentage);
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-05 17:36
萧哲君
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2016-10-30
得分:0 
回复 楼主 萧哲君

你给出的程序在调试时出现了这些问题,不知道是何原因,求指教,是否是我编译器的问题,我使用的是code::block。



2016-11-07 17:00
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:0 
回复 楼主 萧哲君
#include<stdio.h>
 #include<stdlib.h>
 #include<time.h>
 

 float tjcs(int);

 int main ()
 {   srand(time(NULL));   //随机函数种子放到main不然每次的种子都一样
      int totalnumbers;
     float percentage;
     int totals;
     int i,j;

     printf("\nPlease enter the totalnumbers:");
     scanf("%d",&totalnumbers);                             //%d
     printf("\nPlease enter the totals:");
     scanf("%d",&totals);
     for (j=1;j<=totals;j++)
     {
         percentage=tjcs(totalnumbers);
         printf("The percentage of %d is %f\n",j,percentage);
     }
 }
 float tjcs(int totalnumbers)
 {
     int randvalue;
     int total=0;
     int i;
     float percentage;

   
     for (i=1;i<=totalnumbers;i++)
     {
         randvalue=1+(int)rand() % 100;
         if(randvalue>50)
         total++;
     }
     percentage=1.0*total/totalnumbers;     //这里1.0* 强制转换int 转换为float
     return(percentage);
 }

早知做人那么辛苦!  当初不应该下凡
2016-11-07 20:47
syl411120229
Rank: 2
等 级:论坛游民
帖 子:8
专家分:30
注 册:2016-11-7
得分:4 
萌新看不懂
2016-11-07 22:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-470747-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.120275 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved