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

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日

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用