| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 410 人关注过本帖
标题:学校的数组实验,困惑求解
只看楼主 加入收藏
wjsgmhh
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-12-9
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:3 
学校的数组实验,困惑求解
学生成绩统计(一维数组)
从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
(3)以直方图方式统计各分数段的学生人数及所占的百分比。形式如下:
分数段  学生人数      图形
<60   3(10%)    ***
60-69  8(…)    ********
70-79     7(…)    *******
80-89     8(…)    ********
>=90     4(…)    ****

代码
#include<stdio.h>
#include<stdlib.h>

int main()
{
    int score[30],count,i,d=0;//d为不及格人数
    printf("学生成绩统计\n");
    do
    {
        printf("请输入输入一个班(全班最多不超过30人)的学生人数,非法数据则请重新输入\n");
        scanf("%d",&count);
    }while(count<=0||count>30);
    printf("按学号输入一个班(全班最多不超过30人)学生的成绩:\n");
    for(i=0;i<count;i++)
    {
        scanf("%d",&score[i]);
        if(score[i]<60)
        d++;
    }
    for(i=0;i<count;i++)
    {
        if(score[i]<60)
            printf("学号 %d\n",i+1);
    }
    printf("不及格人数 %d\n",d);

    int ave,sum=0,e=0;//e为成绩在全班平均分及平均分之上的学生人数
    for(i=0;i<count;i++)
        sum=sum+score[i];
    ave=sum/count;
    for(i=0;i<count;i++)
    {
        if((score[i])>=ave)
        e++;
    }
    for(i=0;i<count;i++)
    {
        if(score[i]>=ave)
            printf("学号 %d\n",i+1);
    }
    printf("成绩在全班平均分及平均分之上的学生人数 %d\n",e);

    int f1=0,f2=0,f3=0,f4=0,f5=0;
    double bf1,bf2,bf3,bf4,bf5;
    printf("分数段  学生人数      图形\n");
    for(i=0;i<count;i++)
    {
        if(score[i]<60)
            f1++;
        if(score[i]>=60&&score[i]<70)
            f2++;
        if(score[i]>=70&&score[i]<80)
            f3++;
        if(score[i]>=80&&score[i]<90)
            f4++;
        if(score[i]>=90)
            f5++;
    }
    bf1=f1/count*100;
    bf2=f2/count*100;
    bf3=f3/count*100;
    bf4=f4/count*100;
    bf5=f5/count*100;
    printf("<60   %d(%d)",f1,bf1);
    for(i=0;i<f1;i++)
        printf("*");
    printf("\n");
    printf("60-69   %d(%.2lf)",f2,bf2);
    for(i=0;i<f2;i++)
        printf("*");
    printf("\n");
    printf("70-79  %d(%.2lf)",f3,bf3);
    for(i=0;i<f3;i++)
        printf("*");
    printf("\n");
    printf("80-89   %d(%.2lf)",f4,bf4);
    for(i=0;i<f4;i++)
        printf("*");
    printf("\n");
    printf(">=90   %d(%.2lf)",f5,bf5);
    for(i=0;i<f5;i++)
        printf("*");
    printf("\n");
    system("pause");
    return 0;
}
问题:
为什么我程序输出结果百分比的那边全是0.00,我调了很多次都不行,求解
搜索更多相关主题的帖子: include 百分比 直方图 学校 键盘 
2013-12-09 21:31
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:10 
....没懂具体

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-09 21:48
ljx小子
Rank: 8Rank: 8
来 自:星星
等 级:蝙蝠侠
威 望:2
帖 子:222
专家分:916
注 册:2013-10-7
收藏
得分:10 
bf1=(double)f1/count*100;
    bf2=(double)f2/count*100;
    bf3=(double)f3/count*100;
    bf4=(double)f4/count*100;
    bf5=(double)f5/count*100;//这里用类型转换,你的用int/int得到的还是整数类型

。。。。。。。。。。。
2013-12-09 22:19
wjsgmhh
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-12-9
收藏
得分:0 
回复 3楼 ljx小子
谢谢,终于做出来了
2013-12-09 22:31
快速回复:学校的数组实验,困惑求解
数据加载中...
 
   



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

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