| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2631 人关注过本帖
标题:多组三个字符按照ascll比较大小问题
只看楼主 加入收藏
鲸——鸢
Rank: 1
来 自:珠海
等 级:新手上路
帖 子:24
专家分:3
注 册:2016-1-22
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
多组三个字符按照ascll比较大小问题
#include <stdio.h>
int main()
{
    char c1,c2,c3,c4,c5,c6,c7,c8,c9,d1,d2,d3;
    scanf("%c%c%c",&c1,&c2,&c3);
    if(c1>=c2){d1=c1,c1=c2,c2=d1;}
    if(c1>=c3){d1=c1,c1=c3,c3=d1;}
    if(c2>=c3){d1=c2,c2=c3,c3=d1;}
    printf("%c %c %c\n",c1,c2,c3);
   
    scanf("%c%c%c",&c4,&c5,&c6);
    if(c4>=c5){d2=c4,c4=c5,c5=d2;}
    if(c4>=c6){d2=c4,c4=c6,c6=d2;}
    if(c5>=c6){d2=c5,c5=c6,c6=d2;}
    printf("%c %c %c\n",c4,c5,c6);
   
    scanf("%c%c%c",&c7,&c8,&c9);
    if(c7>=c8){d3=c7,c7=c8,c8=d3;}
    if(c7>=c9){d3=c7,c7=c9,c9=d3;}
    if(c8>=c9){d3=c8,c8=c9,c9=d3;}
    printf("%c %c %c\n",c7,c8,c9);
    return 0;
}
输出后第二组最大数会出现在第三组,第三组只出现最小数,是怎么一回事,求助
搜索更多相关主题的帖子: include 
2016-01-24 23:04
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 
American Standard Code for Information Interchange

先把字母拼對!

授人以渔,不授人以鱼。
2016-01-24 23:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你讀過置頂的帖,也回覆過,那麽:
1.你的程序想幹什麽?達到什麽目的?
2.你輸入了什麽?得到了什麽?
這些描述和交待都沒有,問人“怎麽回事”?

授人以渔,不授人以鱼。
2016-01-24 23:10
鲸——鸢
Rank: 1
来 自:珠海
等 级:新手上路
帖 子:24
专家分:3
注 册:2016-1-22
收藏
得分:0 
不好意思,最近都没上线,我的意思是输入三组字符,按照ascii表从小到大进行排序,我运行这个程序后第一组字符成功排序,第二组,第三组就出现了问题,第二组中有字符窜到了第三组,第三组字符有两个消失不见,单独运行一组没有任何问题,但三组一起运行就会有问题出现,我是想问是否我的程序有什么漏洞,使得出现这样的问题

2016-01-29 22:47
鲸——鸢
Rank: 1
来 自:珠海
等 级:新手上路
帖 子:24
专家分:3
注 册:2016-1-22
收藏
得分:0 
回复 3楼 TonyDeng
不好意思,最近都没上线,我的意思是输入三组字符,按照ascii表从小到大进行排序,我运行这个程序后第一组字符成功排序,第二组,第三组就出现了问 题,第二组中有字符窜到了第三组,第三组字符有两个消失不见,单独运行一组没有任何问题,但三组一起运行就会有问题出现,我是想问是否我的程序有什么漏 洞,使得出现这样的问题
2016-02-01 23:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你這個功能其實是字符串比較。寫出來的代碼過於複雜,很難排查,不如重新寫一個。先把邏輯思路理順,編碼是次要的。

授人以渔,不授人以鱼。
2016-02-01 23:37
备用螺丝钉
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-2-4
收藏
得分:0 
scanf是从键盘缓冲区里读字符的。
运行的时候,你敲的键是这样的:
a b c 回车 d e f 回车 g h i 回车
输入函数运行出来的是这样:
c1 c2 c3 c4   c5 c6 c7 c8   c9
a  b  c  回车 d  e  f  回车 g  h  i 回车
排序输出的结果就是
abc
回车de
回车fg
回车是不显示的,至于最大最小,可能是你认为的。

解决这个问题就在每个scanf后面加个函数getch()就可以了。
2016-02-04 11:54
快速回复:多组三个字符按照ascll比较大小问题
数据加载中...
 
   



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

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