我自己打了个程序,但是运行结果跟预料的差很远,救助。C语言的

来源:百度知道 编辑:UC知道 时间:2024/06/17 14:23:10
题目为:写一个函数,对5个学生4门课成绩,求每个学生的平均分。

#include<stdio.h>
void main()
{
float average(float a[5][4]);
int i,j,k;
float aver[5],a[5][4];
printf("请输入成绩\n");
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
}
aver[5]=average(a);
for(k=0;k<=5;k++)
{
printf("平均分=%f\n",aver[k]);
}
}
float average(float a[5][4])
{
int i,j;
float aver,sum;
for(i=0;i<=5;i++)
{
for(j=0;j<=4;j++)
sum=a[i][j];
sum=sum+a[i][j+1];
aver=sum/4;
return(aver);
}
}

你错的太多了。首先:return()语句只能返回一个值,而这题需返回4个值,那就要用指针。其次:sum赋值赋错了。

#include <stdio.h>
float* average(float a[5][4]);
void main()
{
int i,j,k;
float aver[5],a[5][4];
printf("请输入成绩\n");
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
}
aver=average(a);
for(k=0;k<5;k++)
{
printf("平均分=%f\n",aver[k]);
}
}
float* average(float a[5][4])
{
int i,j;
float *aver,sum;
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<4;j++)
sum+=a[i][j];
aver[i]=sum/4;
}
return(aver);
}

试试看