4 数字加密 (15分)——一维数组

think:
1晚上幸亏补题了,要不我的内心估计就留下阴影了,题目真的让我很受伤,明明说了输入一个四位数,呜呜呜,怎么会有前导0这组数据呢,天梯赛的时候自己将输入的数用一个变量存储,然后通过while循环分离出4位,然后通过整型数组存放,通过自己懒投机取巧发现的一个小规律,没思考运算后用一个变量存储输出了,今天晚上看到测试数据的类型后,自己终于明白哪里错了

测试点1    答案正确    9/9     2   1   sample等价,转换中间有前导0
测试点2    答案正确    3/3     1   1   输入有前导0
测试点3    答案正确    3/3     2   1   输出有前导0

2反思:多思考

4 数字加密 (15分)

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

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

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

输入样例:
1257

输出样例:
The encrypted number is 4601

以下为答案正确代码

#include 
int main()
{
    int x, t;
    int a[14];
    while(scanf("%d", &x) != EOF)
    {
        a[0] = x/1000;
        a[1] = (x/100)%10;
        a[2] = (x/10)%10;
        a[3] = x%10;
        for(int i = 0; i < 4; i++)
        {
            a[i] = (a[i] + 9)%10;
        }
        t = a[0], a[0] = a[2], a[2] = t;
        t = a[1], a[1] = a[3], a[3] = t;
        printf("The encrypted number is ");
        for(int i = 0; i < 4; i++)
        {
            printf("%d", a[i]);
        }
        printf("\n");
    }
    return 0;
}

你可能感兴趣的:(错误反思)