某个公司采用公用电话传递数据,数据是四位的整数。在传递过程中是加密的。规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换

热心网友

#include main(){int n, i, tmp;printf("please enter a 4-digit number: ");scanf("%4d", &n);if (n <= 0 || n / (int)pow(10, 3) == 0) { //剔除错误输入printf("\ninput error!\n");return;}for (i = 0; i < 4; i++) { //加5余10tmp = n / (int)pow(10, i) % 10;tmp = (tmp + 5) % 10 - tmp;n += tmp * pow(10, i);}for (i = 0; i < 2; i++) { //交换位置tmp = n / (int)pow(10, 3 - i) % 10 - n / (int)pow(10, i) % 10;n += tmp * pow(10, i);n -= tmp * pow(10, 3 - i);}printf("\nthe encoded number is %d\n", n);return;}顺便说一句,加密算法也就是解密算法,因为它是对称的。。

热心网友

我在“小临风”的基础上修改一下我认为是错误的地方,可能是粗心大意。#include #include void function(int *n){int i1=(*n%10+5)%10;int i2=((*n%100)/10+5)%10; //原来为%5int i3=((*n%1000)/100+5)%10;//原来为%5int i4=(*n/1000+5)%10; //原来为%5*n=i4*1000+i3*100+i2*10+i1; //原来为i1*1000}main(){int n, i, tmp;printf("please enter a 4-digit number: ");scanf("%4d", &n);if(n9999) printf("Error\n");function(&n);printf("n:%4d\n",n);}。

热心网友

main(){int x[4],i,temp;for(i=0;i<4;i++){printf("enter the number %d",i);scanf("%d",&x[i]);x[i]+=5;x[i]=x[i]%10;}for(i=0;i<2;i++){temp=x[i];x[i]=x[3-i];x[3-i]=temp;}for(i=0;i<4;i++){printf("the code %d is%d\n:",i,x[i]);}}

热心网友

#include #include void function(int *n){ int i1=(*n%10+5)%10; int i2=((*n%100)/10+5)%5; int i3=((*n%1000)/100+5)%5; int i4=(*n/1000+5)%5; *n=i1*1000+i3*100+i2*10+i1;}main(){int n, i, tmp;printf("please enter a 4-digit number: ");scanf("%4d", &n);if(n9999) printf("Error\n");function(&n);printf("n:%4d\n",n);}

热心网友

???