【发布时间】:2017-11-23 15:00:47
【问题描述】:
这段代码有什么问题? 我的任务是:创建一个大小为 9x9 的整数方阵。用随机数填充矩阵。相对于垂直轴对称地显示主对角线和侧对角线。预期结果的例子在这里:matrix
Matrix :
20 20 76 65 93 76 16 2 85
6 87 78 43 48 81 71 90 38
10 12 35 77 48 88 24 53 7
12 66 51 35 74 7 30 22 49
58 14 71 46 68 68 10 81 51
98 16 74 47 64 25 17 30 37
2 44 44 74 34 54 86 73 28
85 4 57 75 18 28 51 76 2
35 17 53 76 15 91 83 85 72
The main and side diagonal:
85 20 76 65 93 76 16 2 20
6 90 78 43 48 81 71 87 38
10 12 24 77 48 88 35 53 7
12 66 51 7 74 35 30 22 49
58 14 71 46 68 68 10 81 51
98 16 74 25 64 47 17 30 37
2 44 86 74 34 54 44 73 28
85 76 57 75 18 29 51 4 2
72 17 53 76 15 91 83 85 35
但实际上程序只打印带有随机数的主矩阵,然后停止。
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <Windows.h>
int main()
{
int a = 9;
int matrix[a][a];
int temp;
int i, j, n;
srand((unsigned)time(NULL));
printf("Matrix : \n\n");
for (i = 0; i < a; ++i) {
for (j = 0; j < a; ++j) {
matrix[i][j] = rand() % 100;
printf("%d\t", matrix[i][j]);
}
printf("\n\n");
}
printf("The main and side diagonal:\n\n");
for (i = 0; i < a; ++i) {
temp = matrix[i][i];
matrix[i][i] = matrix[i][(a - 1) - i];
matrix[i][(a - 1) - i] = temp;
}
for (i = 0; i < a; ++i) {
for (j = 0; j < a; ++j) {
printf("Result:", matrix[i][j]);
printf("\n\n\n");
system("pause");
return 0;
}
}
}
【问题讨论】:
-
代码的预期和实际结果是什么?
-
请编辑您的问题,并附上导致您认为存在问题的原因。运行代码时出现错误消息、错误输出、成群尖叫的外星人从天而降,其他?
-
图像应作为“代码”嵌入问题中。它只是两个带有标题线的 9x9 矩阵的转储。看起来这些行是双倍行距的(一行数字,一行空白)。我不知道什么是“主对角矩阵和侧对角矩阵”——Google 也没有用三个或更少的音节来告诉我。