题目描述:
任意给出两个英文字母,比较它们的大小,规定26个英文字母A,B,C.....Z依次从大到小。
输入要求:
第一行输入T,表示有T组数据;接下来有T行,每行有两个字母,以空格隔开;
输出要求:
输出各组数据的比较结果,输出格式见样例输出;(注意输出严格按照输入的顺序即输入是A B,输出时必须是A>B)
输入样例:
3
A B
D D
Z C
输出样例:
A>B
D=D
Z<C
解析:
先不多说,直接上代码(C语言版),提供两种判断!
#include <stdio.h>
int main()
{
int T;
char a, b;
scanf("%d",&T);
while(T--)
{
getchar();
scanf("%c %c",&a,&b);//不写gatchar()此处可以换成scanf("\n%c %c",&a,&b);
/*if(a == b)
printf("%c=%c\n",a,b);
if(a < b)
printf("%c>%c\n",a,b);
if(a > b)
printf("%c<%c\n",a,b);*/
(a<=b)?((a == b)?printf("%c=%c\n",a,b):printf("%c>%c\n",a,b)):printf("%c<%c\n",a,b);
}
return 0;
}
题目看上去难度不大,其实有需要大家注意的细节,第一:大写字母从A到Z在ASCII编码中是从小到大的顺序,而题目要求是从A到Z时从大到小的顺序,需要注意;第二,由于处理的数据为字符型,所以需要注意在取值时的细节,具体说,就是在输入循环次数T后,肯定要回车表示该数据输入完毕,而在接下来读入字母的时候这个回车就会被读入,从而使程序无法读入预设的数据,举例说,在输入循环次数3后,敲回车,此时会将回车读入 a 变量中保存,从而使数据读入错误。该细节的解决方法已在代码中用红色标记。
在注意到以上细节后,解决这个问题已经是小菜一碟啦!
个人见解,仅供参考,希望大家批评指正。