莫扎特第一圆号协奏曲:一道很简单的C题,哪位善良可爱的好心人帮我看一下

来源:百度文库 编辑:高考问答 时间:2024/04/28 22:58:21
编写加密程序:某公司传递数据,数据是4位的整数,在传递过程中加密,加密规则如下:每位数字都加上5,然后用其和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

我编完了,语法上没有错误,但运行后却总是不对。我真的不知道干怎么改,不知哪位好心人可以帮忙看一下,万分感谢!!
#include<stdio.h>
void main()
{
int shu,a,b,c,d,k;
printf("输入四位整数:");
scanf("%d\n",&shu);
a=shu/1000;
b=(shu-a*1000)/100;
c=(shu-a*1000-b*100)/10;
d=shu-a*1000-b*100-c*10;
a=(a+5)%10;
b=(b+5)%10;
c=(c+5)%10;
d=(d+5)%10;
k=d*1000+c*100+b*10+a;
printf("此数的密码为:%d\n",k);
}

1. scanf("%d\n",&shu);
应改为 scanf("%d",&shu);
2.d=shu-a*1000-b*100-c*10;可以写为d=shu%10;
3.k=d*1000+c*100+b*10+a;
printf("此数的密码为:%d\n",k);
改为printf("此数的密码为:%d%d%d%d\n",d,c,b,a);
这样便于看出错误。
祝你成功!

scanf函数中不要添加任何转义字符!!
scanf("%d\n",&shu);改为:
scanf("%d",&shu);