第十次作业

一、实验内容      

 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("	语文	数学	英语	总分	平均分\n	");
	sum1=0;
	sum2=0;
	ave1=0;
	ave2=0;
	for(i=0;i<N;i++)   // 5行 
	{
		for(j=0;j<M;j++)   //三列 
		{
			printf("%d\t",fen[i][j]);
			a++;
			sum1=sum1+fen[i][j];
			ave1=sum1/3;
			if(a%3==0)
			{
				printf("%d\t%.2lf\n\t",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("\b\b\b\b\b\b\b\b平均分\t%.2f\t%.2f\t%.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("\t%d\t",queue[a][b]);
			c++;
			if(c%3==0)
			{
				printf("\n");
			}
		}
	}
	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\n",hang1);
	printf("第二行的和为%d\n",hang2);
	printf("第三行的和为%d\n",hang3);
	printf("第一列的和为%d\n",lie1);
	printf("第二列的和为%d\n",lie2);
	printf("第三列的和为%d\n",lie3);
	printf("斜向右下的和为%d\n",xie1);
	printf("斜向左下的和为%d\n",xie2);
	return 0;
}

  

实验总结:

1、注意循环嵌套

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

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

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

posted @ 2016-12-08 17:42  迷迭香丶  阅读(148)  评论(1编辑  收藏  举报