第十次作业

一、实验内容      

 1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。 

#include<stdio.h>
#define N 5
#define M 3
int main()
{
	int fen[N][M]={{100,99,98},{97,96,95},{94,93,92},{91,90,89},{88,87,86}},sum1,sum2,i,j,a=0;
	double ave1,ave2,b=0,c=0,d=0;
	printf("	语文	数学	英语	总分	平均分
	");
	sum1=0;
	sum2=0;
	ave1=0;
	ave2=0;
	for(i=0;i<N;i++)   // 5行 
	{
		for(j=0;j<M;j++)   //三列 
		{
			printf("%d	",fen[i][j]);
			a++;
			sum1=sum1+fen[i][j];
			ave1=sum1/3;
			if(a%3==0)
			{
				printf("%d	%.2lf
	",sum1,ave1); 
				sum1=0;
			}
			if(j==0)
			{
				b=b+fen[i][j];
			}
			if(j==1)
			{
				c=c+fen[i][j];
			}
			if(j==2)
			{
				d=d+fen[i][j];
			}
		}
	}
	printf("平均分	%.2f	%.2f	%.2f",b/5,c/5,d/5);
	return 0;
 } 

  

 2.求任意方阵每行、每列、两对角线上元素之和。

#include<stdio.h>
#define N 3  //HANG
#define M 3 //LIE
int main()
{
	int queue[N][M]={{1,2,3},{1,2,3},{1,2,3}},a,b,c,lie1=0,lie2=0,lie3=0,hang1=0,hang2=0,hang3=0,xie1=0,xie2=0,i;
	for(a=0;a<N;a++)
	{
		for(b=0;b<M;b++)
		{
			printf("	%d	",queue[a][b]);
			c++;
			if(c%3==0)
			{
				printf("
");
			}
		}
	}
	for(i=0;i<3;i++)
	{
		hang1=hang1+queue[0][i];
		hang2=hang2+queue[1][i];
		hang3=hang3+queue[2][i];
		lie1=lie1+queue[i][0];
		lie2=lie2+queue[i][1];
		lie3=lie3+queue[i][2];
		xie1=xie1+queue[i][i];
		xie2=xie2+queue[i][N-1-i];
	}
	printf("第一行的和为%d
",hang1);
	printf("第二行的和为%d
",hang2);
	printf("第三行的和为%d
",hang3);
	printf("第一列的和为%d
",lie1);
	printf("第二列的和为%d
",lie2);
	printf("第三列的和为%d
",lie3);
	printf("斜向右下的和为%d
",xie1);
	printf("斜向左下的和为%d
",xie2);
	return 0;
}

  

实验总结:

1、注意循环嵌套

2、测试时可以先用简单的数进行测试

3、为退格 1字符长度 4个字符

4、二维数组的第一个[]中可以省略,第二个则不可以

原文地址:https://www.cnblogs.com/lch1/p/6145835.html