某個公司采用公用電話傳遞數據,數據是四位的整數。在傳遞過程中是加密的。規則如下:每位數字都加上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);}

熱心網友

???