c语言 输入10个学生5门功课成绩求:1每个学生的平均分;2每门功课的平均分;3计算平均方差

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 输入10个学生5门功课成绩求:1每个学生的平均分;2每门功课的平均分;3计算平均方差相关的知识,希望对你有一定的参考价值。

我不会做啊,真难

#include<stdio.h>

int main()

    float stu[10][5];
    float a[10];
    int i,j;
    float sum,ave;
    for (i=0; i<10; i++) 
        printf("输入第%d个学生的成绩:",i+1);
        for (j=0; j<5; j++) 
            scanf("%f",&stu[i][j]);
        
    
    for (i=0; i<10; i++) 
        sum=0;
        for (j=0; j<5; j++) 
            sum=sum+stu[i][j];
        
        printf("第%d个学生的平均分:%.2f\\n",i+1,ave=sum/5);
        a[i]=ave;
    
    for (i=0; i<5; i++) 
        sum=0;
        for (j=0; j<10; j++) 
            sum=sum+stu[j][i];
        
        printf("第%d科成绩平均分:%.2f\\n",i+1,ave=sum/10);
    
    ave=0;
    for (i=0; i<10; i++) 
        ave=ave+a[i];
    
    ave=ave/10;
    sum=0;
    for (i=0; i<10; i++) 
        sum=sum+(a[i]-ave)*(a[i]-ave);
    
    printf("平均方差:%f\\n",sum/10);
    return 0;


输入输出数据测试:

输入第1个学生的成绩:44 66 33 55 22

输入第2个学生的成绩:88 44 88 34 66

输入第3个学生的成绩:24 77 44 88 33

输入第4个学生的成绩:56 33 56 67 78

输入第5个学生的成绩:54 44 23 55 66

输入第6个学生的成绩:23 45 54 22 16

输入第7个学生的成绩:55 88 77 55 99

输入第8个学生的成绩:77 57 98 76 98

输入第9个学生的成绩:77 86 47 84 87

输入第10个学生的成绩:100 100 100 99 99

第1个学生的平均分:44.00

第2个学生的平均分:64.00

第3个学生的平均分:53.20

第4个学生的平均分:58.00

第5个学生的平均分:48.40

第6个学生的平均分:32.00

第7个学生的平均分:74.80

第8个学生的平均分:81.20

第9个学生的平均分:76.20

第10个学生的平均分:99.60

第1科成绩平均分:59.80

第2科成绩平均分:64.00

第3科成绩平均分:62.00

第4科成绩平均分:63.50

第5科成绩平均分:66.40

平均方差:364.128357

参考技术A void main()

int i,j;
float score[20][11];
float avgstud[20]=0.0;/*学生平均分*/
float avgcourse[6]=0.0;
float delta[20]=0.0;/*方差*/

/*输入学生的成绩,五个一组*/

for(i=1;i<=10;i++)

printf("please input student %d: score(5 total)\n",i);
for(j=1;j<=5;j++)
scanf("%f",&score[i][j]);

/*计算每个学生的平均分*/
for(i=1;i<=10;i++)

for(j=1;j<=5;j++)

avgstud[i]=avgstud[i]+score[i][j];

avgstud[i]=avgstud[i]/5;

/*计算每门课的平均分*/
for(i=1;i<=5;i++)

for(j=1;j<=10;j++)

avgcourse[i]=avgcourse[i]+score[j][i];

avgcourse[i]=avgcourse[i]/10.0;

/*计算每门课的方差*/
for(i=1;i<=5;i++)

for(j=1;j<=10;j++)

delta[i]=(avgcourse[i]-score[j][i])*(avgcourse[i]-score[j][i]);

delta[i]=delta[i]/10.0;


printf("\nthe score of the student:\n");
for(i=1;i<=10;i++)

for(j=1;j<=5;j++)
printf("%8.2f",score[i][j]);
printf("\n");


printf("\nthe average score of every student:\n");
for(i=1;i<=10;i++)

printf("%8.2f\n",avgstud[i]);

printf("\n");

printf("\nthe avgcourse:\n");
for(i=1;i<=5;i++)

printf("%8.2f",avgcourse[i]);


printf("\nthe delta of every course:\n");
for(i=1;i<=5;i++)

printf("%10.8f\n",delta[i]);

printf("\n");
printf("\n");
getch();


不懂再问我呵。写了我半个小时呢,呵呵本回答被提问者和网友采纳
参考技术B 这个是三个人的三科目:(再改成五行五列就是你要的了!第三个问题我没懂!)
#include <iostream.h>
void main()

int a[3][3]=85,90,80,65,70,75,75,85,77;
float s;
int t;
cout<<"j代表科目:英语,数学,C++;"<<endl;
cout<<"i代表学生."<<endl;
for(int i=0;i<3;i++)

s=0;
for(int j=0;j<3;j++)

s=s+a[i][j];

cout<<"就学生"<<i<<"的平均分数:"<<(s/3)<<endl;

for(int j=0;j<3;j++)

s=0;
for(int i=0;i<3;i++)

s=s+a[i][j];

cout<<"求"<<j<<"科目的平均分数:"<<(s/3)<<endl;

参考技术C 把第三个问题补充一下,计算哪个的平均方差 参考技术D 你把第三个问题给说明白了,我给你搞定!

C语言试题练习:输入5个学生5门课的成绩,分别用函数求:1.每个学生平均分;2.每门课的平均分;3.找出所有分数中最高分

C语言试题练习:输入5个学生5门课的成绩,分别用函数求:①每个学生平均分;②每门课的平均分;③找出所有分数中最高分

//每个学生平均分;
void Average_Students(int a[5][5])
    
	
	int i, j;
	for (i = 0; i < 5; i++)
	
		//第i+1个同学
		double c;
		int b = 0;
		for (j = 0; j < 5; j++)
		//第i+1个同学的成绩平均分
			b += a[i][j];
			c = b / 5.00;
		
		printf("第%d个同学的成绩平均分%0.2f\\n", i + 1, c);
	
	

//每门课的平均分;
void Average_Class(int a[5][5]) 
    
	int i, j;
	for (j = 0; j < 5; j++) //这里a【i】【j】,j循环放在最外面
		double c;
		int b = 0;
		for (i = 0; i < 5; i++)
		
			b += a[i][j];
			c = b / 5;
			//printf("%d\\t", a[i][j]);     这里可以看下输出的分数列的数据
		
		printf("第%d门课的平均分分别为%0.2f\\n", j + 1, c);
	

//所有分数中最高分;
void Max_Point(int a[5][5]) 
   
	int maxh[5];
	int i, j, max;
	for (i = 0, j = 0; i < 5; i++)
	
		maxh[i] = a[i][j];//假设每行第一个是最大值 	
		for (j = 0; j < 5 - 1; j++)
		   //此行元素分别与之比较,较大值为maxh[i] 
			if (a[i][j + 1] >= maxh[i])
			
				maxh[i] = a[i][j + 1];
			
		
	
	for (i = 0; i < 5 - 1; i++) 
	
		max = maxh[i];//假设第一列的数是最大值 
        //整列元素分别与之比较,较大值为max
		if (maxh[i + 1] >= max)
		
			max = maxh[i + 1];
		
	
	printf("所有分数中最高分max=%d\\n", max);

int main()

	int a[5][5];
	int i, j;
	for (i = 0; i < 5; i++)
	
		printf("第%d个同学的成绩:", i + 1);
		for (j = 0; j < 5; j++)
		
			scanf_s("%d", &a[i][j]);
		
	//**输入时数字之间用空格分隔**
	printf("\\n");
	Average_Students(a); printf("\\n");
	Average_Class(a); printf("\\n");
	Max_Point(a); printf("\\n");//输出空格可去掉,这样只是为了输出结果美观
	return 0;


输出结果

1个同学的成绩:56 54 81 62 652个同学的成绩:85 96 42 68 783个同学的成绩:96 84 35 65 454个同学的成绩:54 31 41 68 485个同学的成绩:21 95 87 65 321个同学的成绩平均分63.602个同学的成绩平均分73.803个同学的成绩平均分65.004个同学的成绩平均分48.405个同学的成绩平均分60.001门课的平均分分别为62.002门课的平均分分别为72.003门课的平均分分别为57.004门课的平均分分别为65.005门课的平均分分别为53.00

所有分数中最高分max=95



要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .


参考链接 https://blog.csdn.net/weixin_45391986/article/details/105919562

以上是关于c语言 输入10个学生5门功课成绩求:1每个学生的平均分;2每门功课的平均分;3计算平均方差的主要内容,如果未能解决你的问题,请参考以下文章

用c语言解决数组

在SQL SERVER中,怎样查询每门功课成绩最好的前两名,帮我写一下,谢谢,请补充:

C语言实验题 求大神指点

C语言试题练习:输入5个学生5门课的成绩,分别用函数求:1.每个学生平均分;2.每门课的平均分;3.找出所有分数中最高分

C语言试题练习:输入5个学生5门课的成绩,分别用函数求:1.每个学生平均分;2.每门课的平均分;3.找出所有分数中最高分

C语言试题练习:输入5个学生5门课的成绩,分别用函数求:1.每个学生平均分;2.每门课的平均分;3.找出所有分数中最高分