计算机C语言问题?
某个公司采用公用电话传递数据,数据是四位的整数。在传递过程中是加密的。规则如下:每位数字都加上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余10 tmp = 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)%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); }
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)%10; //原来为%5 int i3=((*n%1000)/100+5)%10;//原来为%5 int 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); } 。
答:请看博文好了详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>