| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1149 人关注过本帖
标题:麻烦看下这个代码哪里错了,利用asc码比较两个字符大小,题目非常水但是好多 ...
只看楼主 加入收藏
白衣柳相
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:142
专家分:168
注 册:2016-12-23
结帖率:82.61%
收藏
 问题点数:0 回复次数:5 
麻烦看下这个代码哪里错了,利用asc码比较两个字符大小,题目非常水但是好多人说不出所以然
#include<stdio.h>
int main()
{
    char a,b;
    scanf("%c%c",&a,&b);
    if(a>b) printf("%c",a);
    else printf("%c",b);
}
2016-12-31 16:54
白衣柳相
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:142
专家分:168
注 册:2016-12-23
收藏
得分:0 
我知道为什么啦,因为我每次输入两个字符习惯性中间加空格,空格也是字符,asc值是32但是每个字母的值一定比32大,所以每次输出都是输入的第一个字符

什么最重要,学习!!!! 我要你们无话可说!我想要的东西自己去拿
2016-12-31 17:50
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 2楼 白衣柳相
学习了
2016-12-31 19:11
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
所以啊,一般这样比较会加人一些特定的分隔符~scanf("%c,%c",&a,&b);

还有一个更好玩的,分开输入试试~
scanf("%c",&a);
scanf("%c",&b);

怎么上面的感觉怪怪的~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-31 19:18
核心利益
Rank: 2
等 级:论坛游民
威 望:2
帖 子:19
专家分:44
注 册:2016-12-31
收藏
得分:0 
用scanf()输入数据时如何分割多个输入的数据:
1)空格。TAB键或回车(假设scanf("%d%f",&a,&b);%d%f之间没有空格,此时我们可以用 空格作为数据结束)
2)达到输入位宽(假如我们指定了输入数据的位宽,当读到位宽后系统就认为输入数据结束)
3)遇到非法字符时。
遇到以上情况都认为一个数据输入结束。

例题1:
#include<stdio.h>
   int main()
   {
     int a,b;
     scanf("%d %d",&a,&b);
     printf("a=%d,b=%d\n",a,b);
   }
问题:当要求程序输出结果为a=12,b=34时,用户该如何输入?
      用户可输入12空格34回车
12 34
a=12,b=34

--------------------------------
Process exited with return value 0
Press any key to continue . . .
同理也可输入12回车34回车
12
34
a=12,b=34

--------------------------------
Process exited with return value 0
Press any key to continue . . .

例题2:
#include<stdio.h>
   int main()
   {
     int a,b;
     scanf(":2d %2d",&a,&b);
     printf("a=%d,b=%d\n",a,b);
   }
输入1234回车
得a=12,b=34
运行如下;
1234
a=12,b=34

--------------------------------
Process exited with return value 0
Press any key to continue . . .
若输入123456回车,得a=12,b=34
运行如下:
123456
a=12,b=34

--------------------------------
Process exited with return value 0
Press any key to continue . . .

若输入12空格3a回车
得a=12,b=3 因为a是非法字符,程序取3将a舍去
运行如下:
12 3a
a=12,b=3

--------------------------------
Process exited with return value 0
Press any key to continue . . .




收到的鲜花
  • 九转星河2017-01-01 09:09 送鲜花  1朵   附言:好文章
2017-01-01 08:37
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 5楼 核心利益
解释得很详细啊~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-01 09:11
快速回复:麻烦看下这个代码哪里错了,利用asc码比较两个字符大小,题目非常水但 ...
数据加载中...
 
   



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

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