C语言求救 急 十万火急

来源:百度知道 编辑:UC知道 时间:2024/05/28 07:16:52
一个班有5名学生,每个学生修了五门课,1)求每个学生的平均成绩,并输出每个学生的学号,每门课程的成绩及平均成绩。2)求某门课程的平均分;
实现要求:
1、分别编写2个函数实现以上2个要求。
2、第1个函数用数组名作参数。第2个函数用指针作为参数,并在函数体内用指针对数组操作。
[实验提示]
(1)程序数据结构
定义一个一维数组存储5学生学号:int num[5];定义一个二维数组存储5学生的成绩int sco[5][5],再定义一个一维数组存储5个学生的平均成绩int avsco[5];
(2)函数编写
求每个学生的平均成绩函数:void averscore ( int sco[][5] ,avsco[5] ),函数体中算法是计算sco[][5]每一行的平均值赋给avsco[5]的对应元素。
求某门课程的平均分函数:int avercourse( int(*psco)[5], n ) ,形参中int(*psco)[5] 是指向5个元素组成的一维数组的指针变量,n表示要查找第n门课程的成绩。如函数调用:avercourse(sco, 3),sco是二维数组名,3表示要计算第3门课程的平均分。函数体中计算sco所指向二维数组的第3列的平均值;

现在编程序如下
有问题
#include<stdio.h>
void main()
{
int num[5],sco[5][5];
float avsco[5];
void averscore(int sco[][5],float avsco[5]);
int n;
int avercourse(int (*psco)[5],int x);
int (*psco)[5];
psco=sco;
int i,j;
for(i=0;i<5;i++)
scanf("%d ",num[i]);
for(i=0;i<5;i++)
{
for(j=0;i<

int num[5],sco[5][5];
float avsco[5];
void averscore(int sco[][5],float avsco[5]);
int n;
int avercourse(int (*psco)[5],int x);
int (*psco)[5];
psco=sco;
int i,j;
for(i=0;i<5;i++)
scanf("%d ",num[i]); /*改为scanf("%d ",&num[i]); */
for(i=0;i<5;i++)
{
for(j=0;i<5;j++)
scanf("%d ",sco[i][j]); /*改为scanf("%d ",&sco[i][j]); */
printf("\n");
}
for(j=0;j<5;j++)
averscore(sco[i][j],avsco[i]);
}
scanf("%d\n",n); /*改为scanf("%d\n",&n); */

void averscore(int sco[][5],avsco[i]) /*改为void averscore(int sco[][5],float avsco[i]) */
别外你的变量定义应这样改:
int num[5],sco[5][5];
int i,j;
int n;
float avsco[5];
void averscore(int sco[][5],float avsco[5]);
int avercourse(int (*psco)[5],int x);
int (*psco)[5];
psco=sco;