标题:求大神指教,为什么会输出都是0;
只看楼主
a593510967
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-11-23
结帖率:0
已结贴  问题点数:20 回复次数:2 
求大神指教,为什么会输出都是0;
#include<stdio.h>
#define N 2
#define M 2
float student[M];
float cource[N];
float a[N][M];
int main()
{
    void allscore();
    void average();
    void avercource();
    void maxscore();
    void averfc();
    int a=1;
    int n;
    printf("please enter %d students' %d cource's score\n",N,M);
        allscore();
        while(a!=0)
        {   printf("*******************************");
            printf("\n查找每个学生平均分请输入0\n计算每门课的平均分请输入1\n找出最高分对应学生和课程请输入2\n计算平均分方差请输入3\n退出查询请输入4\n");
            printf("*******************************");
            printf("\n");
            scanf("%d",&n);
        switch(n)
        {
            case 0:average();break;
            case 1:avercource();break;
            case 2:maxscore();break;
            case 3:averfc();break;
            case 4:a=0;break;
        }
    }
        return 0;
}
        
        





void allscore()//输入每个人成绩
{
    int i,j;
    for(i=0;i<N;i++)//N是人数,M是科目数
    {
        for(j=0;j<M;j++)
            scanf("%f",&a[i][j]);
    }
}

void average()//每个学生的平均分
{void allscore();
    int i,j;
    float all;
    for(i=0;i<N;i++)
    {     all=0;
        for(j=0;j<M;j++)
        {    all=all+a[i][j];
            student[i]=all/M;
        }
        printf("stdent%f average is %f\n",i+1,student[i]);
    }
}

void avercource()//每门课的平均分
{
    int i,j;
    float all;
    for(j=0;j<M;j++)
    {
        for(i=0,all=0;i<N;i++)
        {
            all=all+a[j][i];
            cource[j]=all/N;
        }
                printf("cource%d average is %d\n",j+1,cource[j]);
    }
}

void maxscore()//出最高分数的学生和课程
{
    float max;
    int i,j;
    max=a[0][0];
    for(i=0;i<N;i++)
        for(j=0;j<M;j++)
        {
            if(a[i][j+1]>a[i][j])
                max=a[i][j+1];
            
        }
        
            printf("student %d score is the hightest,\nIt is course%d\nscore is %d",i+1,j+1,max);
}

void averfc()//求每个人平均分的方差
{
    float fc;
    float a,b;
    int j;
    a=0;b=0;
    for(j=0,fc=0;j<N;j++)
    {    a=student[j]*student[j]+a;
        b=student[j]*student[j]/N+b;
    }
    fc=a/N-b;
    printf("everybody' fc's score is %d\n",fc);
}
搜索更多相关主题的帖子: average include please 
2016-12-08 20:07
a593510967
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-11-23
得分:0 
不用啦,原来是输出那里出了点问题~~其他小错误也发现了
2016-12-08 20:43
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
得分:20 
你输出格式全乱了,你看看%d和%f,你对应的参数真的是整型和单精度浮点吗?这个错了是会输出莫名其妙的。输出格式你要牢记。
%d、i:整型,%f:单精度浮点型,%lf:双精度浮点型,%ld:长整型,%g:这个在浮点型挺好用,你可以试试,%c:字符型。%x/%X:小写/大写字母的十六进制整形。%o:八进制整型
%h:短整型。%s:字符串。%p:地址。牢记这些输出输入格式,一一对应,就绝对不会有输出错误,如果有,那就是你前面的运算代码出问题了。
2016-12-09 09:02



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




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

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