C语言错误,指针,有一个班4个学生,5门课程. ①求第1门课程的平均分; ……/*有一个班4个学生,5门课程.①求第1门课程的平均分;②找出有两门以上课程不及格的学生,输出他们的学号和全部课
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/25 10:04:00
C语言错误,指针,有一个班4个学生,5门课程. ①求第1门课程的平均分; ……/*有一个班4个学生,5门课程.①求第1门课程的平均分;②找出有两门以上课程不及格的学生,输出他们的学号和全部课
C语言错误,指针,有一个班4个学生,5门课程. ①求第1门课程的平均分; ……
/*有一个班4个学生,5门课程.①求第1门课程的平均分;②找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90分以上或全部课程成绩在85分以上的学生.【除了cour_aver函数可以正常输出,其他两个函数打出一堆“0.0”,并夹杂着很多很长的数字!究竟哪里错了?】
#include
int main()
{ float cour_aver(float (*p)[5],int cour);
void fail_two(float (*p)[5]);
void excellent(float (*p)[5]);
int i,j;
float score[4][5];
for(i=0;i
C语言错误,指针,有一个班4个学生,5门课程. ①求第1门课程的平均分; ……/*有一个班4个学生,5门课程.①求第1门课程的平均分;②找出有两门以上课程不及格的学生,输出他们的学号和全部课
//错误看代码里的注释
#include<stdio.h>
int main()
{
\x09float cour_aver(float (*p)[5],int cour);
\x09void fail_two(float (*p)[5]);
\x09void excellent(float (*p)[5]);
\x09int i,j;
\x09float score[4][5];
for(i=0;i<4;i++)
\x09{
\x09\x09printf("Please input 5 scores of student No.%d:",i+1);
\x09\x09for(j=0;j<5;j++)
\x09\x09\x09scanf("%f",&score[i][j]);
\x09}
\x09printf("\tCour1\tCour2\tCour3\tCour4\tCour5\n");
\x09for(i=0;i<4;i++)
\x09{
\x09\x09printf("No.%d\t",i+1);
\x09\x09for(j=0;j<5;j++)
\x09\x09\x09printf("%.1f\t",score[i][j]);
\x09\x09printf("\n");
\x09}
\x09printf("The average of Course 1 is %.1f .\n",cour_aver(score,0));//第一门课程下标是0,不是1
\x09fail_two(score);
\x09excellent(score);
\x09return 0;
}
float cour_aver(float (*p)[5],int cour)
{
\x09int i;
\x09float sum=0;
\x09for(i=0;i<4;i++)
\x09\x09sum=sum+*(*(p+i)+cour);
\x09return sum/4;
}
void fail_two(float (*p)[5])
{
\x09int i,j,b;
float sum;
\x09for(i=0;i<4;i++)
\x09{
\x09\x09b=0;//每一次循环都要初始化b=0和sum=0
\x09\x09sum=0;
\x09\x09for(j=0;j<5;j++)
\x09\x09\x09if(*(*(p+i)+j)<60)
\x09\x09\x09\x09b++;
\x09\x09if(b>=2)
\x09\x09{
\x09\x09\x09printf("Student No.%d\t",i+1);
\x09\x09\x09for(j=0;j<5;j++)//j++不是i++
\x09\x09\x09{
\x09\x09\x09\x09printf("%.1f\t",*(*(p+i)+j));
\x09\x09\x09\x09sum=sum+*(*(p+i)+j);
\x09\x09\x09}
\x09\x09\x09printf("average:%.1f\n",sum/5);
\x09\x09}
\x09}
}
void excellent(float (*p)[5])
{
\x09int i,j,b;
\x09float stu_aver,sum;
\x09for(i=0;i<4;i++)
\x09{
\x09\x09b=0;//每一次循环都要初始化b=0和sum=0
\x09\x09sum=0;
\x09\x09for(j=0;j<5;j++)
\x09\x09{
\x09\x09\x09sum=sum+*(*(p+i)+j);
\x09\x09\x09if(*(*(p+i)+j)>=85)
\x09\x09\x09\x09b++;
\x09\x09}
\x09\x09stu_aver=sum/5;\x09
\x09\x09if(stu_aver>=90||b==5)
\x09\x09\x09printf("Student No.%d\t",i+1);
\x09}
\x09printf("\n");
}