|
10鱼币
本帖最后由 chenhuhu 于 2023-1-13 09:54 编辑
- #include<stdio.h>
- #include<stdlib.h>
- float square(float n);
- float aver_student(int student[10][5],int n);
- int main()
- {
-
- float aver_class(int student[10][5],int n);
- void max(int student[10][5]);
- float fang(int student[10][5],int n);
- void fang1(int student[10][5],int n);
- int score[10][5]={0};
- int i=1,j=1;
-
- //for(i=1;i<=10;i++)//10名同学
- for(i=1;i<=3;i++)//3名同学
- {
- for(j=97;j<=101;j++)//5门成绩
- {
- printf("请输入%d同学的%c成绩:\n",i,j);
- scanf("%d",&score[i-1][j-97]);
- }
- }
- //for(i=1;i<10;i++)//10名同学
- for(i=1;i<=3;i++)//3名同学
- {
- printf("%d同学的平均分为%6.2f\n",i,aver_student(score,i));
- }
- for(i=97;i<=101;i++)
- {
- printf("%c课程的平均分为%4.2f\n",i,aver_class(score,i-96));
- }
- max(score);
- printf("平均分方差为%4.2f\n",fang(score,3));
- fang1(score,3);
- system("pause");
- return 0;
- }
- float aver_student(int student[10][5],int n)//学生平均分
- {
- int i,sum=0;
- float aver=0;
- for(i=0;i<5;i++)//5门课程
- {
- sum=sum+student[n-1][i];
- }
- aver=sum/5.0;
- return aver;
- }
- float aver_class(int student[10][5],int n)//课程平均分
- {
- int i,sum1=0;
- float aver1=0;
- for(i=0;i<3;i++)//3名学生
- {
- sum1=sum1+student[i][n-1];
- }
- aver1=sum1/3.0;
- return aver1;
- }
- void max(int student[10][5])
- {
- int i=0,j=0,max=student[0][0],a,b;
- for(i=0;i<3;i++)//3名学生
- {
- for(j=0;j<5;j++)
- {
- if(max<student[i][j])
- {
- max=student[i][j];
- a=i+1;
- b=j+97;
- }
- }
- }
- printf("最高分为%d,为%d同学的%c科目\n",max,a,b);
- }
- float square(float n)
- {
- float a;
- a=n*n;
- return(a);
- }
- float fang(int student[10][5],int n)
- {
- float fang=0;
- int sum2=0,sum3=0,i=0,j=0;
- for(i=1;i<=3;i++)
- {
- sum2=sum2+aver_student(student,i);
- printf("%f\n",sum2);
- }
- for(j=1;j<=3;j++)
- {
- float a=aver_student(student,j);
- sum3=sum3+square(a);
- printf("%f\n",sum3);
- //sum3=sum3+square(aver_student(student,j));
- }
- fang=sum3/n-square(sum2/n);
- return fang;
- }
- void fang1(int student[10][5],int n)
- {
- float fang=0;
- int sum2=0,sum3=0,i=0,j=0;
- for(i=1;i<=3;i++)
- {
- sum2=sum2+aver_student(student,i);
- printf("%f\n",sum2);
- }
- for(j=1;j<=3;j++)
- {
- float a=aver_student(student,j);
- sum3=sum3+square(a);
- printf("%f\n",sum3);
- //sum3=sum3+square(aver_student(student,j));
- }
- fang=sum3/n-square(sum2/n);
- printf("%4.2f",fang);
- //return fang;
- }
复制代码
后两个函数里面的sum应该是累加后的结果,但为什么这里打印输出显示出的都是0啊?最后方差输出的结果也不对,有大佬知道是哪里出了问题吗?
int sum2=0,sum3=0,i=0,j=0; 你确认这东西是int类型 是对的????
|
最佳答案
查看完整内容
int sum2=0,sum3=0,i=0,j=0; 你确认这东西是int类型 是对的????
|