标题:我的期末作业,最后求百分比得出来的是负值,还有两个警告搞不掉,求大神指 ...
取消只看楼主
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
结帖率:0
已结贴  问题点数:20 回复次数:6 
我的期末作业,最后求百分比得出来的是负值,还有两个警告搞不掉,求大神指点
这是我的期末作业,录入少于30人的成绩,输入负值时结束录入,然后进行各种统计
一下是运行结果
请按学号输入学生0-100之间的成绩,回车键确认,输入负值时输入完成
2014101:89
2014102:79
2014103:69
2014104:59
2014105:49
2014106:39
2014107:-1
不及格人数为:3
不及格的有:
2014104:59
2014105:49
2014106:39
班级平均分为:64
及格的同学有:
2014101:89
2014102:79
2014103:69
各阶段所占百分比:
60分一下:-13%
60-69分:-13%
70-79分:-13%
80-89分:-13%
90-99分:-13%
100分:-13%

Press any key to continue

以下是我的程序


#include"stdio.h"
int aver(int a,int b)
    {int aver;
    aver=a/b;
    return aver;
    }
void bi(int a[],int b[])
    {int i;
     printf("及格的同学有:\n");
     for(i=0;i<30;i++)
         if(a[i]>=60)
             printf("%d:%d\n",b[i],a[i]);
    }
fen(int a[])
    {
    int i,stu[6];
    for(i=0;i<30;i++)
        if(a[i]<60||a[i]>0)stu[0]=stu[0]+1;
        else if(a[i]<70)stu[0]=stu[1]+1;
        else if(a[i]<80)stu[0]=stu[2]+1;
        else if(a[i]<90)stu[0]=stu[3]+1;
        else if(a[i]<100)stu[0]=stu[4]+1;
        else if(a[i]=100)stu[0]=stu[5]+1;
        return stu[6];
    }
void main()
    {
    int i,b,d=0,sum=0,score[30],count=0,stu2[6];
    long int j,num[30];
    printf("请按学号输入学生0-100之间的成绩,回车键确认,输入负值时输入完成\n");
        for(j=2014101,i=0;j<=2014130,i<30;i++,j++)
            num[i]=j;
        for(i=0;i<30;i++)
            {printf("%d:",num[i]);
            scanf("%d",&b);
            d++;
            score[i]=b;
            if(b<60&&b>0)
                count++;
            if(b<0)
                break;
            sum+=b;}
            printf("不及格人数为:%d\n不及格的有:\n",count);
        for(i=0;i<30;i++)
            if(score[i]<60&&score[i]>0)
                printf("%d:%d\n",num[i],score[i]);
        printf("班级平均分为:%d\n",aver(sum,d-1));
            bi(score,num);
            stu2[6]=fen(score);
        printf("各阶段所占百分比:\n");
        printf("60分一下:%d%%\n",100*stu2[0]/(d-1));
        printf("60-69分:%d%%\n",100*stu2[1]/(d-1));
        printf("70-79分:%d%%\n",100*stu2[2]/(d-1));
        printf("80-89分:%d%%\n",100*stu2[3]/(d-1));
        printf("90-99分:%d%%\n",100*stu2[4]/(d-1));
        printf("100分:%d%%\n",100*stu2[5]/(d-1));
        
    }



还有两个警告,完全搞不懂
D:\green\VC6\Common\MSDev98\Bin\888.c(19) : warning C4700: local variable 'stu' used without having been initialized
D:\green\VC6\Common\MSDev98\Bin\888.c(51) : warning C4700: local variable 'stu2' used without having been initialized
搜索更多相关主题的帖子: 百分比 统计 
2015-05-29 12:51
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
得分:0 
回复 2楼 beyondyf
百度告诉我没有初始化,但我不知道怎么初始化,是刚上来的定义么,还是引用函数之前定义一下什么的
2015-05-29 12:58
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
得分:0 
回复 4楼 beyondyf
你直接告诉我不好吗,还有百分比那里怎么搞
2015-05-29 13:02
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
得分:0 
回复 6楼 beyondyf
你这个人很奇怪,我问个问题你干嘛要封我
2015-05-29 13:05
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
得分:0 
回复 8楼 beyondyf
调试了很多遍,就这两个问题解决不了,我又不是专业的
2015-05-29 13:10
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
得分:0 
回复 10楼 embed_xuel
其它部分都能调试出来,就最后那个算百分数的部分不行
fen(int a[])
    {
    int i,stu[N]={0};
    for(i=0;i<30;i++)
        {
        if(a[i]<60||a[i]>0)stu[0]=stu[0]+1;
        else if(a[i]<70)stu[1]=stu[1]+1;
        else if(a[i]<80)stu[2]=stu[2]+1;
        else if(a[i]<90)stu[3]=stu[3]+1;
        else if(a[i]<100)stu[4]=stu[4]+1;
        else if(a[i]=100)stu[5]=stu[5]+1;
        return stu[N];
        }
    }
我想用这个函数统计各个阶段的人数,然后在主函数中输出,但是主函数调用的时候就是fen(score)这种形式,怎么让他输出完整的数组???
2015-05-30 13:01
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
得分:0 
回复 12楼 TonyDeng
哦,谢谢
其它部分都能调试出来,就最后那个算百分数的部分不行
fen(int a[])
    {
    int i,stu[N]={0};
    for(i=0;i<30;i++)
        {
        if(a[i]<60||a[i]>0)stu[0]=stu[0]+1;
        else if(a[i]<70)stu[1]=stu[1]+1;
        else if(a[i]<80)stu[2]=stu[2]+1;
        else if(a[i]<90)stu[3]=stu[3]+1;
        else if(a[i]<100)stu[4]=stu[4]+1;
        else if(a[i]=100)stu[5]=stu[5]+1;
        return stu[N];
        }
    }
我想用这个函数统计各个阶段的人数,然后在主函数中输出,但是主函数调用的时候就是fen(score)这种形式,怎么让他输出完整的数组???
2015-05-30 13:06



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




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

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