注册 登录
编程论坛 C语言论坛

数字加密

黑暗骑士5D 发布于 2019-12-10 20:01, 2194 次点击
输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。

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

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

输入样例:
1257
输出样例:
The encrypted number is 4601


int main()
{
   int i,a[10],n,t;
    scanf("%d",n);
   for(i=3;i>=0;i++)
   {
     a[i]=n%10;
     n=n/10;
   }
   for(i=0;i<4;i++)
   {
     a[i]=(a[i]+9)%10;
   }
   for(i=0;i<1;i++)
   t=a[i+2],a[i+2]=a[i],a[i]=t;
   printf("The encrypted number is ");
   for(i=0;i<4;i++)
    printf("%d",a[i]);

}
我这出啥问题了,无法输出
5 回复
#2
rjsp2019-12-10 20:22
for(i=3;i>=0;i++) 应是 --i 吧
#3
自学的数学2019-12-10 23:57
#include <stdio.h>
int main()
{
int n,a,b,c,d,e,f,g,h,x,y;
scanf("%d",&n);
a=n%10;
b=n/10%10;
c=n/100%10;
d=n/1000%10;
e=(a+9)%10;
f=(b+9)%10;
g=(c+9)%10;
h=(d+9)%10;
x=e;e=g;g=x;
y=f;f=h;h=y;
printf("The encrypted number is %d%d%d%d",h,g,f,e);
}
#4
黑暗骑士5D2019-12-11 11:22
回复 2楼 rjsp
改了之后还是段错误啊
#5
rjsp2019-12-11 11:44
scanf("%d",n);
编译器报错:warning C4700: uninitialized local variable 'n' used
#6
倾听心跳2019-12-11 15:44
#include<stdio.h>
int main()
{
    int i,a[10],n =0,t;
    scanf("%d",&n);
    for(i=3;i>=0;i--)   
    {
        a[i]=n%10;
        n=n/10;
    }
    for(i=0;i<4;i++)
    {
        a[i]=(a[i]+9)%10;
    }
    for(i=0;i<1;i++)
        t=a[i+2],a[i+2]=a[i],a[i]=t;
    printf("The encrypted number is ");
    for(i=0;i<4;i++)
        printf("%d",a[i]);

}
1