题目要求 将数组{1-9}根据以下的方式进行置换 并且输出一个矩阵 检查是否为正确
置换条件是:1->3 2->4 3->9… 如下
1 2 3 4 5 6 7 8 9
3 4 9 1 7 5 2 8 6
例如 输入
3 4 9 1 7 5 2 8 6
应当输出
1 2 3 4 5 6 7 8 9
3 4 9 1 7 5 2 8 6
输入时需要检查每次输入的是否为1-9的数字,且每个数字只能输入一次
否则需要报错
如果输入正确的数字,则将置换的结果打印成一个两行的矩阵
题目要求 将数组{1-9}根据以下的方式进行置换 并且输出一个矩阵 检查是否为正确
置换条件是:1->3 2->4 3->9… 如下
1 2 3 4 5 6 7 8 9
3 4 9 1 7 5 2 8 6
例如 输入
3 4 9 1 7 5 2 8 6
应当输出
1 2 3 4 5 6 7 8 9
3 4 9 1 7 5 2 8 6
输入时需要检查每次输入的是否为1-9的数字,且每个数字只能输入一次
否则需要报错
如果输入正确的数字,则将置换的结果打印成一个两行的矩阵
#include <stdio.h>
int a[9]; //存输入
int b[10] = {0, 4, 7, 1, 2, 6, 9, 5, 8, 3}; // 存置换对应数据
int c[9]; // 存结果
int main() {
for (int i = 0; i < 9; i++) {
scanf("%d", &a[i]);
// 检查每次输入的是否为1-9的数字
if (a[i] > 9 || a[i] < 1) {
puts("input error");
return 0;
}
// 检查每个数字只能输入一次
for (int j = 0; j < i; j++) {
if (a[j] == a[i]) {
puts("input error");
return 0;
}
}
c[i] = b[a[i]];
}
for (int i = 0; i < 9; i++) printf("%d ", c[i]);
printf("\n"); // 输出空行
for (int i = 0; i < 9; i++) printf("%d ", a[i]);
return 0;
}