文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 前言
- 1.练习5-9
- 2.练习5-10
- 3.练习5-11
- 4.练习5-12
前言
本文章主要为本人在看明解C语言(第3版)入门篇的过程中对于书上的练习题的要求代码的实现。
代码如下:
#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;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)