自定义函数问题。。帮帮忙。。。
我写的这个最后的结果都是0.00,不知道哪里错了。。。程序代码:
#include<stdio.h> #define N 10 #define M 5 float a1,a2,a3,a4,a5,a6,a7,a8,a9,a10; float b1,b2,b3,b4,b5; int m,n; float x; float a[N][M]; void input(void)//输入成绩 { int i,j; for(i=0;i<N;i++) { printf("请输入第%d个学生的五门成绩:",i+1); for(j=0;j<M;j++) scanf("%d",&a[i][j]); } } void stu_a(void)//计算每个学生的平均分 { int i,j; float k=0.0; for(i=0;i<N;i++) { for(j=0;j<M;j++) k+=a[i][j]; if(i==0)a1=k/M; else if(i==1)a2=k/M; else if(i==2)a3=k/M; else if(i==3)a4=k/M; else if(i==4)a5=k/M; else if(i==5)a6=k/M; else if(i==6)a7=k/M; else if(i==7)a8=k/M; else if(i==8)a9=k/M; else if(i==9)a10=k/M; k=0.0; } } void cou_a(void)//计算每门课的平均分 { int i,j; float k; k=0.0; for(i=0;i<N;i++) { for(j=0;j<M;j++) k+=a[i][j]; if(i==0)b1=k/N; else if(i==1)b2=k/N; else if(i==2)b3=k/N; else if(i==3)b4=k/N; else if(i==4)b5=k/N; k=0.0; } } float high_sco(void)//找出最高分数及对应的学生和课程 { int i,j; float high; high=(float)a[0][0]; for(i=0;i<N;i++) { for(j=0;j<M;j++) if(a[i][j]>high) {high=(float)a[i][j],m=i,n=j;} } return high; } void f(float x)//计算平均分方差 { x=(a1*a1+a2*a2+a3*a3+a4*a4+a5*a5+a6*a6+a7*a7+a8*a8+a9*a9+a10*a10)/N-((a1+a2+a3+a4+a5+a6+a7+a8+a9+a10)/N)*((a1+a2+a3+a4+a5+a6+a7+a8+a9+a10)/N); } void main() { printf("请输入10个学生五门课程的成绩\n"); input(); stu_a(); cou_a(); printf("stu_1平均分为%.2f\nstu_2平均分为%.2f\nstu_3平均分为%.2f\nstu_4平均分为%.2f\nstu_5平均分为%.2f\nstu_6平均分为%.2f\nstu_7平均分为%.2f\nstu_8平均分为%.2f\nstu_9平均分为%.2f\nstu_10平均分为%.2f\n",a1,a2,a3,a4,a5,a6,a7,a8,a9,10); printf("cou_1平均分为%.2f\ncou_2平均分为%.2f\ncou_3平均分为%.2f\ncou_4平均分为%.2f\ncou_5平均分为%.2f\n",b1,b2,b3,b4,b5); printf("最高分为%.2f,是stu_%d,是cou_%d课程\n",high_sco(),m+1,n+1); printf("平均分方差为%.2f\n",x); }