快乐打码 2022-11-08 18:52 采纳率: 71.4%
浏览 52
已结题

请问我写的代码哪出错了,要怎么改正才能获得想要的结果

数字加密
输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。

输入格式:
输入在一行中给出一个四位的整数x,即要求被加密的数。

输出格式:
在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。

输入样例:
1257
输出样例:
The encrypted number is 4601
我写的代码

#include <stdio.h>

int main() {
    int x, i, a, b, c, d, n, sum;
    scanf("%d", &x);
    a = x % 10;
    b = x / 10 % 10;
    c = x / 100 % 10;
    d = x / 1000;
    int arr[5] = {a, b, c, d};
    for (i = 0; i < 5; i++) {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < 5; i++) {
        for ( n = 0; n < 5; n++) {
            int t = (arr[i] + 9) % 10;
        }
        if (arr[n] == a) {
            int j = a;
            a = c;
            c = j;
        }
        if (arr[n] == b) {
            int k = b;
            b = d;
            d = k;
        }
    }
    sum = a + b * 10 + c * 100 + d * 1000;
    printf("The encrypted number is %d", sum);
    return 0;
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-11-08 19:57
    关注

    修改见注释,供参考:

    #include <stdio.h>
    int main() {
        int x, i, a, b, c, d, n, sum;
        scanf("%d", &x);
        a = x % 10;     //个位
        b = x / 10 % 10;//十位
        c = x / 100 % 10;//百位
        d = x / 1000;    //千位
    
        a = (a + 9) % 10;//每一位上的数字加9,然后除以10取余
        b = (b + 9) % 10;
        c = (c + 9) % 10;
        d = (d + 9) % 10;
        /*   以下删除
        int arr[5] = {a, b, c, d};
        for (i = 0; i < 5; i++) {
            scanf("%d", &arr[i]);
        }
        for (i = 0; i < 5; i++) {
            for ( n = 0; n < 5; n++) {
                int t = (arr[i] + 9) % 10;
            }
            if (arr[n] == a) {
                int j = a;
                a = c;
                c = j;
            }
            if (arr[n] == b) {
                int k = b;
                b = d;
                d = k;
            }
        }
       */
        sum = c + d * 10 + a * 100 + b * 1000;//千位和十位上的数字互换,百位和个位上的数字互换
        printf("The encrypted number is %d", sum);
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 11月8日

悬赏问题

  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)