这道题很简单,但却值得写一下结题报告。因为:

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:很感谢老大。因为你的鼓励,现在自己才满怀斗志的继续前进着。。。还有,你给了我很多有用的建议呦!

posted on 2012-07-27 18:34  zhtzhl  阅读(340)  评论(0)    收藏  举报