| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 969 人关注过本帖
标题: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
快速回复:for语句嵌套问题
数据加载中...
 
   



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

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