| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1083 人关注过本帖, 1 人收藏
标题:一个语句不理解,都帮帮我啊、、
只看楼主 加入收藏
prefect1005
Rank: 1
等 级:新手上路
帖 子:21
专家分:1
注 册:2011-7-27
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:12 
一个语句不理解,都帮帮我啊、、
Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
 

Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
 

Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
 

Sample Input
qwe
asd
zxc
 

Sample Output
e q w
a d s
c x z


我的程序#include <stdio.h>
int main ()
{
   char temp,a,b,c;
   while (scanf("%c%c%c",&a,&b,&c) != EOF)
   {
           if (a > b)
     {
         temp = a;
         a = b;
         b = temp;
     }
     if (a > c)
     {
         temp = a;
         a = c;
         c = temp;
     }
     if (b > c)
     {
         temp = b;
         b = c;
         c = temp;
     }
      printf("%c %c %c\n",a,b,c);
   }
  
    return 0;
}

这是不对的。但是!!
#include <stdio.h>
int main ()
{
   char temp,a,b,c;
   while (scanf("%c%c%c",&a,&b,&c) != EOF)
   {
       getchar();    //当加上这个语句就正确了,为什么啊???
     if (a > b)
     {
         temp = a;
         a = b;
         b = temp;
     }
     if (a > c)
     {
         temp = a;
         a = c;
         c = temp;
     }
     if (b > c)
     {
         temp = b;
         b = c;
         c = temp;
     }
      printf("%c %c %c\n",a,b,c);
   }
  
    return 0;
}
大侠帮帮忙啊、、、、、
搜索更多相关主题的帖子: include 
2011-11-04 17:06
半片冰心
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-11-4
收藏
得分:0 
你的换行符不算啊,每次输入一组之便会插入一个换行符到缓冲区中,用getchar()丢弃换行符
2011-11-04 17:21
tan2010
Rank: 2
等 级:论坛游民
帖 子:66
专家分:71
注 册:2011-10-13
收藏
得分:0 
在while循环中以EOF作为文件结束标志,其实你还没有输入数据进去,用getchar()从键盘获取数据在屏幕显示,该函数一次只能接受一个字符!!!
2011-11-04 17:23
prefect1005
Rank: 1
等 级:新手上路
帖 子:21
专家分:1
注 册:2011-7-27
收藏
得分:0 
什么意思?就是接受回车键??
2011-11-04 17:28
tan2010
Rank: 2
等 级:论坛游民
帖 子:66
专家分:71
注 册:2011-10-13
收藏
得分:0 
我错了 给你一个地址自己看看吧!!希望有用!!http://blog.
2011-11-04 20:22
非死亡!
Rank: 8Rank: 8
来 自:四川
等 级:蝙蝠侠
帖 子:179
专家分:760
注 册:2011-10-31
收藏
得分:20 
程序代码:
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    char i,j,k;
    scanf("%c%c",&i,&j);
    scanf("%c",&k);
    printf("%d\n%d\n%d\n",i,j,k);
}
//键入12回车
//输出 49
//     50
//     10
明白了吧
scanf()在用%c时 会将空格 回车 等也看作字符输入的 这点要注意了

能力 技巧
2011-11-04 21:40
哆啦安梦
Rank: 2
来 自:哈尔滨理工大学软件
等 级:论坛游民
威 望:1
帖 子:31
专家分:49
注 册:2011-10-21
收藏
得分:0 
学习了~~

Press any key to continue_
2011-11-05 09:50
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
收藏
得分:0 
上面的scanf输入替换成getchar()就行

兴趣是编程最好的老师
2011-11-05 13:57
sun_shang001
Rank: 2
等 级:论坛游民
帖 子:103
专家分:78
注 册:2011-10-27
收藏
得分:0 
在看下书吧   
while的基本结构:while(条件表达式)语句
你的只有条件表达式,而没有语句(循环体)所以出错了  我没有试  我想你吧getchar()换成scanf()应给也是正确的
2011-11-05 14:24
sun_shang001
Rank: 2
等 级:论坛游民
帖 子:103
专家分:78
注 册:2011-10-27
收藏
得分:0 
我错了  不能用scanfde的
2011-11-05 14:34
快速回复:一个语句不理解,都帮帮我啊、、
数据加载中...
 
   



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

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