C语言编程问题_第5个

来源:百度知道 编辑:UC知道 时间:2024/05/31 20:35:05
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

给,已经编译运行确认:
#include<conio.h>
#include<stdio.h>

void main()
{
int a[4]={0},num,i,temp;

while(1)
{
printf("please input the number: \n");
fflush(stdin);
scanf("%d",&num);
if((num<1000)||(num>9999)) {printf("Error Input!\n"); continue;}

a[0]=num/1000;
a[1]=num/100%10;
a[2]=num%100/10;
a[3]=num%10;

for(i=0;i<4;i++)
a[i]=(a[i]+5)%10;

temp=a[0];
a[0]=a[3];
a[3]=temp;

temp=a[1];
a[1]=a[2];
a[2]=temp;
break;
}

printf("The New Number: \n%d%d%d%d",a[0],a[1],a[2],a[3]);//为了防止处理后千位为0,输出位数不对,所以直接进行数组项输出

getch();
}