| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 719 人关注过本帖
标题:一个小小的密码加工程序问题
只看楼主 加入收藏
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
快速回复:一个小小的密码加工程序问题
数据加载中...
 
   



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

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