垃圾学渣求毕业 2022-03-17 04:27 采纳率: 50%
浏览 239
已结题

C语言小练习 置换数字

题目要求 将数组{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的数字,且每个数字只能输入一次
否则需要报错
如果输入正确的数字,则将置换的结果打印成一个两行的矩阵

  • 写回答

8条回答 默认 最新

  • 「已注销」 2022-03-17 12:28
    关注
    获得0.60元问题酬金
    
    #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;
    }
    
    评论

报告相同问题?

问题事件

  • 系统已结题 3月25日
  • 创建了问题 3月17日