读书人

帮忙指点一下异常在哪里

发布时间: 2012-03-02 14:40:29 作者: rapoo

帮忙指点一下错误在哪里
/*加密四位正整数*/
#include <stdio.h>
main()
{
int num,a,b,c,d,i;

printf( "输入一个四位正整数:\n ");
scanf( "%d ",&num);

while(num!=EOF){
a=num/1000;
b=num%1000/100;
c=num%100/10;
d=num%10;

a=(a+7)%10 ;
b=(b+7)%10 ;
c=(c+7)%10 ;
d=(d+7)%10 ;



i=a;
a=c;
c=i;
i=b;
b=d;
d=i;

printf( "%d%d%d%d ",a,b,c,d);

printf( "输入一个四位正整数:\n ");
scanf( "%d ",&num);
}

return 0;
}

----------------------------

/*解密四位正整数*/
#include <stdio.h>
main()
{
int num,a,b,c,d,i;

printf( "输入一个四位正整数:\n ");
scanf( "%d ",&num);

while(num!=EOF){
a=num/1000;
b=num%1000/100;
c=num%100/10;
d=num%10;

i=a;
a=c;
c=i;
i=b;
b=d;
d=i;



a=a+10-7;
b=b+10-7;
c=c+10-7;
d=d+10-7;

printf( "%d %d %d %d \n ", a, b, c, d);

printf( "输入一个四位正整数:\n ");
scanf( "%d ",&num);
}

return 0;
}

--------------------------
输入某些数字的时候会出现有1在前面,意思有点像是代表正负位.
但是我觉得不应该有这种问题的啊,帮忙看一下

我用的是DEV-C++编译器


[解决办法]
a=a+10-7;
b=b+10-7;
c=c+10-7;
d=d+10-7;
这里要求余
a%=10;
b%=10;
c%=10;
d%=10;

读书人网 >C语言

热点推荐