这道题很简单,但却值得写一下结题报告。因为:
1、当定义了字符后,可直接a>b,否则若用'a'>'b',则说明是a本身这个字符,而不是变量了
2、三个比大小,顺序很重要,先是a与b比,然后是a与c比,最后是b与c比。这里的交换如a与b,是指a与b的大小变了,交换了a与b的值。因为a与b是变量,而不是指交换过后a与b的位置也变了,所以输出时是a、b、c的顺序。
#include<stdio.h>
int main()
{
char a,b,c,t;
while(scanf("%c%c%c",&a,&b,&c)!=EOF)
{
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=c;
c=a;
a=t;
}
if(b>c)
{
t=c;
c=b;
b=t;
}
printf("%c %c %c\n",a,b,c);
getchar();
}
return 0;
}
但看了参考码之后,觉得自己的程序太费时了。可以用c++,其中的swap()是交换函数。
另外:用cin和cout输入输出字符串时:
cin》a;//a为字符串的名字,遇到空格、制表符、回车符和文件结束符为字符串输入的结束标志。
保证输入的字符串的长度小于数组a的长度,这样才能把输入的字符串有效的储存起来,并且会自动的在整个字符串后面加上结束符'\0'。
#include<iostream>
#include<algorithm>
using namespace std;
int main(void)
{
char n[4];
while(cin>>n)
{
if(n[0]>n[1])
swap(n[0],n[1]);
if(n[1]>n[2])
swap(n[1],n[2]);
if(n[0]>n[1])
swap(n[0],n[1]);
cout<<n[0]<<' '<<n[1]<<' '<<n[2]<<endl;
}
return 0;
}
ps:很感谢老大。因为你的鼓励,现在自己才满怀斗志的继续前进着。。。还有,你给了我很多有用的建议呦!
浙公网安备 33010602011771号