比较字母大小
-
描述
-
任意给出两个英文字母,比较它们的大小,规定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++在格式输入输出方面大大的优越于C,真的是好纠结!!!
/*#include<stdio.h> int main() { int num; scanf("%d",&num); while(num--) { char a,b,c; getchar();//清除输入缓冲区中的空格符 scanf("%c %c",&a,&b); if(a>b){c='<';} if(a<b){c='>';} if(a==b){c='=';} printf("%c%c%c\n",a,c,b); } return 0; } #include<iostream> using namespace std; int main() { int n; cin>>n; while(n--) { char a,b; cin>>a>>b; if(a<b) cout<<a<<">"<<b<<endl; if(a==b) cout<<a<<"="<<b<<endl; if(a>b) cout<<a<<"<"<<b<<endl; } return 0; }*/ #include<stdio.h> int main() { int n; char a,b; scanf("%d",&n); while(n--) { scanf("\n%c %c",&a,&b);//输入回车符 if(a>b) printf("%c<%c\n",a,b); else if(a==b) printf("%c=%c\n",a,b); else printf("%c>%c\n",a,b); } return 0; }
scanf函数最常用的两种输入方式%d整数输入方式,以及%c字符输入方式。 用%d方式输入整数时,输入一串数字然后按回车符,输入就完成了。而用%c方式输入字符时,就稍微复杂一点。一般来说用%c输入字符时,当输完以后,都习惯按一下回车,这时回车符就成了一个问题。 【例1】: scanf("%c",&a); /*此时输入一个字符,并按下回车,那么变量a将会正确接收输入的字符*/ scanf("%c",&b); /*但是变量b将会接收到回车符,其值为10,或者说ASCII码为10*/ 【例2】: scanf("%d",&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/ scanf("%d",&y); /*变量y不会接收到回车符,需要用户继续输入数字,并回车,正常接收到整数*/ 【例3】: scanf("%d",&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/ scanf("%c",&a); /*但是变量a将会接收到回车符,其值为10,或者说ASCII码为10*/
【例4】: scanf("%d",&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/ scanf("%d",&y); /*若此时输入的是字母而不是数字,比如输入“s”并回车*/ /*那么变量y将不会接收到任何字符或数字,其值保持原样,不发生任何改变*/ scanf("%c",&a); /*此时变量a将接收到上一步输入的字母*/ /*即变量a中存储的字符将是"s",而不是回车符*/
【结论】: 当输入完整数或字符时,后面还需要输入字符时,为了避免输入的字符变成回车符,可以在输入字符前多加一条scanf语句来吃掉前面的回车符。此时用来吃掉回车符的scanf输入可以用%c方式,也可以用%d方式。当用%c方式来吃掉回车符时,回车符被读进了char类型变量中,当用%d方式来吃掉回车符时,回车符并没有被送进int类型变量中,而是在异常的字符输入后,被自动清除了。
-
第一行输入T,表示有T组数据;