为什么这程序无论输入什么输出都全为零?c语言

#include<stdio.h>floatmost(inti,intn,floatb[][4]);floatleast(inti,intn,floatb[][4]);f... #include <stdio.h>float most(int i,int n,float b[][4]);float least(int i,int n,float b[][4]);float passingrate(int i,int n,float b[][4]);int main(void){ int n,i,a; float sum1=0.0,sum2=0.0,sum3=0; scanf("%d",&n); float b[n+4][4]; for(i=0;i<n;i++) { for(a=0;a<=2;a++) { scanf("%d",&b[i][a]); } } for(i=0;i<n;i++) { b[i][3]=(b[i][0]+b[i][1]+b[i][2])/3; sum1=sum1+b[0][i]; sum2=sum2+b[1][i]; sum3=sum3+b[2][i]; } printf("%.2f",b[0][0]); b[n][0]=sum1/(float)n; b[n][1]=sum2/(float)n; b[n][2]=sum3/(float)n; b[n+1][0]=most(0,n,b); b[n+1][1]=most(1,n,b); b[n+1][2]=most(2,n,b); b[n+2][0]=most(0,n,b); b[n+2][1]=most(1,n,b); b[n+2][2]=most(2,n,b); b[n+3][0]=passingrate(0,n,b); b[n+3][1]=passingrate(1,n,b); b[n+3][2]=passingrate(2,n,b); printf("程序设计 英语 数学 个人平均成绩\n"); for(i=0;i<n+4;i++) { for(a=0;a<=3;a++) { printf("%0.2f ",b[i][a]); } printf("\n"); } }float most(int i,int n,float b[][4]){ float Most=b[0][i]; int f; for(f=0;f<n;f++){ if(Most<b[f][i]) Most=b[f][i]; } return Most;} float least(int i,int n,float b[][4]){ float Least=b[0][i]; int f; for(f=0;f<n;f++){ if(Least>b[f][i]) Least=b[f][i]; } return Least;} float passingrate(int i,int n,float b[][4]){ int f; float e=0.0,passingrate; for(f=0;f<n;f++){ if(b[f][i]>=60) e++; } passingrate = e/(float) n; return passingrate; }题目:某班有最多不超过60人(具体人数n由键盘输入)参加期末考试,考试科目为程序设计、英语和数学,用二维数组编程实现以下功能:(1)输入学生的各科考试成绩。(2)计算每个同学的平均分。(3)输出每名学生的各科考试成绩和个人平均分。(4)计算输出各科目的平均分、最高分、最低分、及格率。 展开
 我来答
White_MouseYBZ
2019-11-27 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6484万
展开全部
b声明的是float型,但scanf("%d",&b[i][a]);中用的控制符却是int型的%d,改成%f试试。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式