我在做到练习5-10的时候才想起来可以将代码上传,之前的练习题稍后有机会温书的时候再上传吧。
练习5-10
#include <stdio.h>
int main(void)
{
int i, j;
int m, n;
int a[4][3] = { 0 }, b[3][4] = { 0 };
int c[4][4] = { 0 };
/*输入矩阵a*/
puts("输入矩阵a。");
for (i = 0; i < 4; i++) {
for (j = 0; j < 3; j++) {
printf("a[%d][%d]=", i + 1, j + 1);
scanf_s("%d", &a[i][j]);
}
}
/*输入矩阵b*/
puts("输入矩阵b。");
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
printf("a[%d][%d]=", i + 1, j + 1);
scanf_s("%d", &b[i][j]);
}
}
/*计算矩阵乘积*/
for (m = 0; m < 4; m++)
for (n = 0; n < 4; n++)
for (i = 0; i < 3; i++)
c[m][n] += a[m][i] * b[i][n];
/*输出矩阵乘积*/
puts("矩阵乘积");
for (m = 0; m < 4; m++) {
for (n = 0; n < 4; n++) {
printf(" c[%d][%d]=%d ", m + 1, n + 1, c[m][n]);
}
putchar('\n');
}
return 0;
}
练习5-11:这里的学生成绩是提前写入了程序,读者也可以采用scanf读取来进行操作。
#include <stdio.h>
#define STUDENT 6
#define COURSE 2
int main(void)
{
int i, j;
int tensu[STUDENT][COURSE] = { {89,91},{87,82},{78,93},{86,85},{78,100},{95,75} };
int sum[COURSE] = { 0 };
int score[STUDENT] = { 0 };
/*求解各门课程的总分*/
for (j = 0; j < COURSE; j++)
for (i = 0; i < STUDENT; i++)
sum[j] += tensu[i][j];
/*显示各门课程的总分和平均分*/
for (j = 0; j < COURSE; j++)
printf("第%d门课的总分是%d,平均分是%.2f。\n", j + 1, sum[j], (double)sum[j] / STUDENT);
putchar('\n');
/*求解各位学生的总成绩*/
for (i = 0; i < STUDENT; i++)
for (j = 0; j < COURSE; j++)
score[i] += tensu[i][j];
/*显示各位同学的总成绩和平均分*/
for (i = 0; i < STUDENT; i++)
printf("第%d位同学的总分是%d,平均分是%.2f。\n",i+1,score[i],(double)score[i]/COURSE);
return 0;
}
练习5-12
#include <stdio.h>
#define A 4
#define B 3
#define C 2
int main(void)
{
int i, j, k;
int tensu1[A][B] = { {91,63,78},{67,72,46},{89,34,53},{32,54,54} };
int tensu2[A][B] = { {97,67,82},{73,43,46},{97,56,21},{85,46,35} };
int tensu[C][A][B] = { 0 };
/*将tensu1放入三维数组*/
for (i = 0; i < A; i++)
for (j = 0; j < B; j++)
tensu[0][i][j] = tensu1[i][j];
/*将tensu2放入三维数组*/
for (i = 0; i < A; i++)
for (j = 0; j < B; j++)
tensu[1][i][j] = tensu2[i][j];
/*将三维数组打印出来*/
for (k = 0; k < C; k++) {
printf("三维数组中第%d个元素\n",k+1);
for (i = 0; i < A; i++) {
for (j = 0; j < B; j++) {
printf("%d ", tensu[k][i][j]);
}
putchar('\n');
}
putchar('\n');
}
}