| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2273 人关注过本帖
标题:小数点后面的数跑那去了啊
只看楼主 加入收藏
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
小数点后面的数跑那去了啊
#include<stdio.h>
#define ww 6
#define ee 5
int c[ww][ee];
int main(void)
{
    int f;float pjfs,txpjfs[ee];
    for(f=0;f<ee;f++)
    {
        c[0][f]=f;
    }
    for(f=0;f<ee;f++)
    {
        printf("请输入学号为%d同学的A,B,C,D,E课程的分数(输入小数会省略!字符则会出错!):\n  ",c[0][f]);
        scanf("%d %d %d %d %d",&c[1][f],&c[2][f],&c[3][f],&c[4][f],&c[5][f]);
    }
    /*for(f=0;f<ww;f++)
    {
        for(i=0;i<ee;i++)
        {
            printf("%d ",c[f][i]);
        }
        printf("\n");
    }*/
    pjfs=pjfsx();            
    printf("全班同学平均分为:%f\n",pjfs);
    for(f=0;f<ee;f++)
    {
        txpjfs[f]=txpjfsx(f);
        printf("学生%d的平均分为:%f\n",f,txpjfs[f]);
    }
    getch();
    return 0;   
}
float pjfsx()                  
{
    int f,i,p[2]={0};
    for(f=1;f<ww;f++)
    {
        for(i=0;i<ee;i++)   
        {
            p[0]=p[0]+c[f][i];
            p[1]=p[1]+1;
        }
    }
    return p[0]/p[1];                 //如果返回的带有小数为什么他会省略??如果不想省略要怎么样修改下??
}
float txpjfsx(int a)
{
    int f,p[2]={0};
    for(f=1;f<ww;f++)
    {
        p[0]=p[0]+c[f][a];
        p[1]=p[1]+1;
    }
    return p[0]/p[1];                   //这里也是
}

如果我这样输入的话,结果是这样的:

请输入学号为0同学的A,B,C,D,E课程的分数(输入小数会省略!字符则会出错!):
  150 10 111 20 32
请输入学号为1同学的A,B,C,D,E课程的分数(输入小数会省略!字符则会出错!):
  155 54 12 33 111
请输入学号为2同学的A,B,C,D,E课程的分数(输入小数会省略!字符则会出错!):
  99 877 41 21 33
请输入学号为3同学的A,B,C,D,E课程的分数(输入小数会省略!字符则会出错!):
  11 22 78 44 3
请输入学号为4同学的A,B,C,D,E课程的分数(输入小数会省略!字符则会出错!):
  455 1 333 11 22
全班同学平均分为:109.000000   
学生0的平均分为:64.000000    这里应该是 64.6  为什么小数点后面的数他会省略??
学生1的平均分为:73.000000   
学生2的平均分为:214.000000   
学生3的平均分为:31.000000
学生4的平均分为:164.000000

谢谢啦!!帮忙帮忙!
搜索更多相关主题的帖子: 课程 include 小数点 
2011-09-18 18:24
nicum
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:180
专家分:712
注 册:2011-2-1
收藏
得分:0 
return p[0]/(float)p[1];
2011-09-18 18:33
nicum
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:180
专家分:712
注 册:2011-2-1
收藏
得分:0 
类型强制转换
2011-09-18 18:34
shanshan3003
Rank: 2
等 级:论坛游民
帖 子:53
专家分:66
注 册:2011-8-29
收藏
得分:0 
再提问题时请简洁的指出不懂得地方,大篇幅的真的不愿读啊!!
2011-09-18 19:40
lin471306489
Rank: 4
等 级:业余侠客
帖 子:136
专家分:247
注 册:2011-8-16
收藏
得分:0 
函数有点错误
函数不是在main()函数之前定义,首先要声明,其他就没什么的,主要是语法。

程序得不到浮点数的原因;int p[2]={0},所以这里是变成了整形

修改过的程序
 #include<stdio.h>
 #include<string.h>
 #define ww 6
 #define ee 5
 int c[ww][ee];
 float pjfsx();                 //声明函数
 float txpjfsx(int a);          //声明函数
 int main(void)            
 {
     int f,i;
     float pjfs,txpjfs[ee];
     for(f=0;f<ee;f++)
     {
         c[0][f]=f;
     }
     for(f=0;f<ee;f++)
     {
         printf("请输入学号为%d同学的A,B,C,D,E课程的分数(输入小数会省略!字符则会出错!):\n  ",c[0][f]);
         scanf("%d %d %d %d %d",&c[1][f],&c[2][f],&c[3][f],&c[4][f],&c[5][f]);
     }
     for(f=0;f<ww;f++)
     {
         for(i=0;i<ee;i++)
         {
             printf("%d ",c[f][i]);
         }
         printf("\n");
     }
     pjfs=pjfsx();            
     printf("全班同学平均分为:%f\n",pjfs);
     for(f=0;f<ee;f++)
     {
         txpjfs[f]=txpjfsx(f);
         printf("学生%d的平均分为:%f\n",f,txpjfs[f]);
     }
     //getch();
     return 0;   
}
 float pjfsx()                  
{
     int f,i;
     float p[2]={0};                  //想要得到浮点数,不要定义为int类型
     for(f=1;f<ww;f++)
     {
         for(i=0;i<ee;i++)   
        {
             p[0]=p[0]+c[f][i];
             p[1]=p[1]+1;
         }
     }
     return p[0]/p[1];                 //如果返回的带有小数为什么他会省略??如果不想省略要怎么样修改下??
 }
 float txpjfsx(int a)
 {
     int f;
     float p[2]={0};                  //。。。
     for(f=1;f<ww;f++)
     {
         p[0]=p[0]+c[f][a];
         p[1]=p[1]+1;
     }
     return p[0]/p[1];                   //这里也是
 }
 
2011-09-18 21:19
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 



没函数声明...............


自动升级了     int  是系统认为效率最高的 类型,你 没函数声明,调用函数会自动,用认为效率高的 方式传递返回值...........float->int    最好用函数原型声明,防止函数升级

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-18 21:45
mengcan555
Rank: 4
等 级:业余侠客
帖 子:104
专家分:253
注 册:2011-9-17
收藏
得分:0 
吧p[0]和p[1]声明成float 就好了,int类型相处结果就会是 int , 就算最后函数float pjfsx() 是float类型,也只是在结果后加上几个零  是不int 结果强制转化成float               
2011-09-18 21:57
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
收藏
得分:0 
回复 6楼 A13433758072
看不懂你说的“函数升级”是什么东西.可以详细讲讲不
2011-09-20 15:39
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:10 
回复 8楼 离开天空的云
我知道,不代表我能解释给你,我找点资料给你看http://m.baidu.com/from=2001a/bd_page_type=1/ssid=0/uid=wiaui_1316504891_652/pu=usm%400%2Csz%40224_220/w=0_10_c%E8%AF%AD%E8%A8%80%E5%87%BD%E6%95%B0%E5%A3%B0%E6%98%8E/t=wap/l=2/tc?ref=www_colorful&tj=wenkuala_1_0_10&order=1&vit=osres&sec=15295&di=aa8db02932b6c9bf&src=http%3A%2F%2Fwenku.baidu.com%2Fview%2F2add9f5277232f60ddcca1b2.html%3Ffr%3Dalawk%26fr2%3Dwise

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-20 15:59
快速回复:小数点后面的数跑那去了啊
数据加载中...
 
   



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

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