标题:一个小小的密码加工程序问题
只看楼主
weihui910728
Rank: 2
等 级:论坛游民
帖 子:14
专家分:12
注 册:2011-11-20
结帖率:100%
已结贴  问题点数:20 回复次数:7 
一个小小的密码加工程序问题
#include<stdio.h>
void main()
{
    int a,b,c,d=2;
    scanf("%d%d%d",&a,&b,&c);
    a=a+d;
    b=b+d;
    c=c+d;
    a= a>'9'?'0'+(a-'0')%10:a;
    b= b>'9'?'0'+(b-'0')%10:b;
    c= c>'9'?'0'+(c-'0')%10:c;
    printf("%d %d %d\n",a,b,c);
}
我要的是从键盘输入数字字符(0-9),后移加密,当超出字符范围从头循环,如当后移量为2位时,输入109加工后为321
而这个程序的运行结果却是3 2 11 到底那里出错了
搜索更多相关主题的帖子: 加工 密码 
2011-11-20 13:50
sala0127
Rank: 2
等 级:论坛游民
帖 子:56
专家分:52
注 册:2011-11-8
得分:0 
'9'和9不一样。
2011-11-20 14:02
Firewall1076
Rank: 2
等 级:论坛游民
帖 子:20
专家分:22
注 册:2011-11-19
得分:0 
同意楼上
2011-11-20 14:12
weihui910728
Rank: 2
等 级:论坛游民
帖 子:14
专家分:12
注 册:2011-11-20
得分:0 
把'9'改成9了也不行呀    结果变成3 2 41
而且‘9’是一个字符常量    而我写的要变量a>'9'是表示当输入值a的ASCII值大于9的ASCII时   、、、、、、、、
2011-11-20 14:40
sala0127
Rank: 2
等 级:论坛游民
帖 子:56
专家分:52
注 册:2011-11-8
得分:0 
回复 4楼 weihui910728
变量c是整型,要把一个整型数字变成字符数字要加一个'0',11减48=负37,再取余得负7,48加负7所以是41。

[ 本帖最后由 sala0127 于 2011-11-20 15:31 编辑 ]
2011-11-20 15:14
sala0127
Rank: 2
等 级:论坛游民
帖 子:56
专家分:52
注 册:2011-11-8
得分:10 
回复 4楼 weihui910728
整型和字符型一起运算会把字符型转换成对应的ASCII进行运算。可以改为c>9?c%10:c。
2011-11-20 15:27
nan1888
Rank: 2
等 级:论坛游民
帖 子:44
专家分:86
注 册:2011-6-19
得分:10 
#include<stdio.h>
void main()
{
    int a,b,c,d=2;
    scanf("%d%d%d",&a,&b,&c);
    a=a+d;
    b=b+d;
    c=c+d;
    a= a>9?a%10:a;
    b= b>9?b%10:b;
    c= c>9?c%10:c;
    printf("%d %d %d\n",a,b,c);
}
2011-11-20 16:34
weihui910728
Rank: 2
等 级:论坛游民
帖 子:14
专家分:12
注 册:2011-11-20
得分:0 
楼上谢了  
2011-11-21 00:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-355763-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.949216 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved