题目描述
输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。
输入
3行,每行一个用字符串。保证每个字符串的长度不超过20。
输出
按从小到大的顺序输出这3个字符串,每个字符串一行。
请注意行尾输出换行。
样例输入
China
CLOCK
deal
样例输出
CLOCK
China
deal
对于这个题目,感觉还是很简单,但是刚开始编写起来把自己给绕晕了,可能也是C语言中指针那块学的不太好吧,如果题目中不说指针,那还是觉得蛮简单的,后来把这一题给研究出来了,虽然问题不大,能做出来通过还是挺开心的。
对于这题,需要用指针来完成,在主函数中,没有设置指针的函数,而是用3个字符型数组进行存储,可以通过<string.h>的头文件,引入所需要的关于字符串的表达,先判断每个字符串的大小,用strcmp函数,然后调用自己写的函数,完成将字符串按照从小到大的顺序排列,最终完成了这一题。
代码如下:(采用codeblocks编写)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void exchange(char *p1,char *p2); //函数声明
int main()
{
char str1[20],str2[20],str3[20]; //定义三个字符数组
gets(str1); //输入字符串
gets(str2); //输入字符串
gets(str3); //输入字符串
if(strcmp(str1,str2)>0) //调用 比较函数
exchange(str1,str2);
if(strcmp(str1,str3)>0)
exchange(str1,str3);
if(strcmp(str2,str3)>0)
exchange(str2,str3);
printf("%s %s %s",str1,str2,str3);
return 0;
}
void exchange(char *p1,char *p2)
{
char p[20]={};
strcpy(p,p1);
strcpy(p1,p2);
strcpy(p2,p);
}