明解C语言(第3版)入门篇-【部分】第五章练习题解

明解C语言(第3版)入门篇-【部分】第五章练习题解,第1张

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 前言
    • 1.练习5-9
    • 2.练习5-10
    • 3.练习5-11
    • 4.练习5-12


前言

本文章主要为本人在看明解C语言(第3版)入门篇的过程中对于书上的练习题的要求代码的实现。


1.练习5-9

代码如下:

#include 
#define NUMBER 70

int main(void)
{
	int i,j,max;
	int num;
	int stumark[NUMBER];
	int bunpu[11]={0};

	printf("请输入学生的人数:");

	do{
		scanf("%d",&num);
		if(num<1||num>NUMBER)
			printf("请输入1-%d的数值。


",NUMBER); }while(num<1||num>NUMBER); printf("请输入%d人的分数。


",num); for(i=0;i<num;i++){ printf("%2d号:",i+1); do{ scanf("%d",&stumark[i]); if(stumark[i]<0||stumark[i]>100) printf("\a请输入0-100内的数值。


"); }while(stumark[i]<0||stumark[i]>100); bunpu[stumark[i]/10]++; } for(i=0;i<10;i++) printf("%2d~%2d分数段含有%d个\n",i*10,i*10+9,bunpu[i]); printf("%5d分数段含有%d个\n",100,bunpu[10]); printf("\n"); puts("\n--------------------分布图-------------------"); max = bunpu[0]; for (i = 1; i < 11; i++) { if (max < bunpu[i]) max = bunpu[i]; } for (j = max; j > 0; j--) { for (i = 0; i < 11; i++) { if (bunpu[i] >= j) printf(" * "); else printf(" "); } putchar('\n'); } putchar('\n'); printf("---------------------------------------------\n"); for (j = 0; j <= 100; j += 10) { printf(" %d ", j); } return 0; }

2.练习5-10

代码如下:

#include 

int main(void)
{
	int i,j;
	int k=0;
	int a[4][3];
	int b[3][4];
	int product[4][4];

	printf("\n请输入4行3列矩阵的元素的值:\n");

	for(i=0;i<4;i++)
	{
		for(j=0;j<3;j++)
		{
			printf("a[%d][%d]:",i,j);
			scanf("%4d",&a[i][j]);
		}
		putchar('\n');
	}

	for(i=0;i<4;i++)
	{
		for(j=0;j<3;j++)
			printf("%8d",a[i][j]);
		putchar('\n');
	}

	printf("\n请输入3行4列矩阵的元素的值:\n");

	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("b[%d][%d]: ",i,j);
			scanf("%4d",&b[i][j]);
		}
		putchar('\n');
	}

	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
			printf("%8d",b[i][j]);
		putchar('\n');
	}

	putchar('\n');

	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{
			product[i][j] = a[i][k]*b[k][j] +  a[i][k+1]*b[k+1][j] +  a[i][k+2]*b[k+2][j];
			printf("%8d",product[i][j]);
		}
		putchar('\n');
	}

	return 0;
}
3.练习5-11

代码如下:

#include 
#define stu 6
#define cur 2

int main(void)
{
	int i=0,j=0;
	int tensu[stu][cur]={0};
	int sum_stu=0 , gpa_stu=0;
	int sum_cur=0 , gpa_cur=0;

	printf("请分别输入学生的成绩:\n");

	for(i=0;i<6;i++)
	{
		for(j=0;j<2;j++)
		{
			printf("tensu[%d][%d]:",i,j);
			scanf("%d",&tensu[i][j]);
		}
	}

	for(i=0;i<6;i++)
	{
		for(j=0;j<2;j++)
		{
			printf("%8d",tensu[i][j]);
		}
		putchar('\n');
	}

	for(j=0;j<2;j++)
	{
		for(i=0;i<6;i++)
		{
			sum_cur += tensu[i][j];
		}
		gpa_cur=sum_cur/stu;
		printf("第%d门课程的总分数为:%d,第%d门课程的平均分为: %d\n",j+1,sum_cur,j+1,gpa_cur);
		sum_cur=0;
	}

	for(i=0;i<6;i++)
	{
		for(j=0;j<2;j++)
		{
			sum_cur+=tensu[i][j];
		}
		gpa_stu=sum_cur/cur;
		printf("第%d个学生的总分数为:%d,第%d门课程的平均分为: %d\n",i+1,sum_cur,i+1,gpa_stu);
		sum_cur=0;
	}
	
	return 0;
}

4.练习5-12

代码如下:

#include 

int main(void)
{
	int i,j,k;
	int tensu[2][4][3] = {0};
	int sum[2][4][3] = {0};

	//在这里并没有对实际分数写死,而是可以自定义。


printf("\n现在进行两次分数的录入。


\n"); for(i=0;i<2;i++) { for(j=0;j<4;j++) { for(k=0;k<3;k++) { printf("tensu[%d][%d][%d] = ",i,j,k); scanf("%d",&tensu[i][j][k]); putchar('\n'); } } } for(j=0;j<4;j++) { for(k=0;k<3;k++) { for(i=0;i<1;i++) { int n; n=i+1; sum[i][j][k]= tensu[i][j][k]+tensu[n][j][k]; } } } puts("\n第一次考试的分数为:\n"); for(i=0;i<1;i++) { for(j=0;j<4;j++) { for(k=0;k<3;k++) { printf("%4d",tensu[i][j][k]); } putchar('\n'); } } puts("\n第二次考试的分数为:\n"); for(i=1;i<2;i++) { for(j=0;j<4;j++) { for(k=0;k<3;k++) { printf("%4d",tensu[i][j][k]); } putchar('\n'); } } puts("\n总分:\n"); for(i=0;i<1;i++) { for(j=0;j<4;j++) { for(k=0;k<3;k++) { printf("%4d",sum[i][j][k]); } putchar('\n'); } } return 0; }

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/564721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-06
下一篇 2022-04-06

发表评论

登录后才能评论

评论列表(0条)

保存