KONGZHILIU 发表于 2008-7-2 01:49

求助 谢谢!

今天让朋友帮忙编了这个程序 因为明天要交作业
不知道是否正确
请高手指点一下 谢谢

/*
输入10个学生5门课的成绩,分别用函数实现下列功能:
1计算每个学生平均分
2计算每门课的平均分
3找出所有50个分数中最高的分数所对应的学生和课程;
*/


#include <stdio.h>

void main()

{
    double st_ave(int ar[][5], int m);//求学生平均分
    double sc_ave(int ar[][5], int n);//求每门课平均分
    void max(int ar[][5]);//找出最高成绩

   
    int ar[10][5];
    int i,j;

    for (i=0; i<10; i++)
        for (j=0; j<5; j++)
        {
            printf("请输入第%d学生第%d门功课的成绩:", i+1, j+1);
            scanf("%d", &ar[i][j]);
        }

    for (i=0; i<10; i++)
        printf("\n第%d个学生的平均成绩为:%.2f", i+1, st_ave(ar, i));

    for (i=0; i<5; i++)
        printf("\n第%d门功课的平均成绩为:%.2f", i+1, sc_ave(ar, i));

    max(ar);

}

double st_ave(int ar[][5], int m)
{
    int i;
    int sum = 0;

    for (i=0; i<5; i++)
        sum += ar[m][i];

    return (sum/5.0);

}

double sc_ave(int ar[][5], int n)
{
    int i;
    int sum = 0;

    for (i=0; i<10; i++)
        sum += ar[i][n];

    return (sum/10.0);

}

void max(int ar[][5])
{
    int i,j;
    int max = ar[0][0];
    int x = 0, y = 0;

    for (i=0; i<10; i++)
        for (j=0; j<5; j++)
        {
            if (max < ar[i][j])
            {
                max = ar[i][j];
                x = i;
                y = j;
            }
        }

    printf("\n第%d个学生第%d门功课的成绩最高。为:%d\n", x+1, y+1, max);
}

mqh21364 发表于 2008-7-2 09:34

运行一下不就知道对错了啊?

scl512 发表于 2008-7-2 10:29

这个对和错都要别人帮你验证 无语了!!~!~!

页: [1]

编程论坛