内存:128  时间:1

题目描述

输入三个字符串,按由小到大的顺序输出。分别使用指针和引用方式实现两个排序函数。在主函数中输入和输出数据。

输入

3行字符串

输出

按照从小到大输出成3行。由指针方式实现。

样例输入

cde
afg
abc

样例输出

abc
afg
cde

提示

 #include<stdio.h>

#include<string.h>

 

int main()

{

    void sort1(char *,char *,char *);

    char s1[100],s2[100],s3[100];

    char *p1,*p2,*p3;

 gets(s1);

 gets(s2);

 gets(s3);

    p1=s1;

    p2=s2;

    p3=s3;

    sort1(p1,p2,p3);

 printf("%s
",s1);

 printf("%s
",s2);

 printf("%s
",s3);

    return 0;

}

代码如下


#include<stdio.h>
#include<string.h>
 
int main()
{
    void sort1(char *,char *,char *);
    char s1[100],s2[100],s3[100];
    char *p1,*p2,*p3;
    gets(s1);
	gets(s2);
	gets(s3);
    p1=s1;
    p2=s2;
    p3=s3;
    sort1(p1,p2,p3);
	printf("%s
",s1);
	printf("%s
",s2);
	printf("%s
",s3);
    return 0;
}void sort1(char * p1,char * p2,char * p3) //字符指针做函数参数
{
	char t[100];
	if(strcmp(p2,p1)<0)  //第二个字符串小于第一个字符串,则交换这两个字符串 
	{
	   //交换p2和p1所指向的串
		strcpy(t,p1);
		strcpy(p1,p2);
		strcpy(p2,t);
	}
    if(strcmp(p3,p2)<0) //第三个字符串小于现在的第二个字符串,则交换这两个字符串
	{
		//交换p3和p2所指向的串
		strcpy(t,p2);
		strcpy(p2,p3);
		strcpy(p3,t);	
	}
    if(strcmp(p2,p1)<0) //现在的第二个字符串小于现在的第一个字符串,则交换这两个字符串
	{
		//交换p2和p1所指向的串
		strcpy(t,p1);
		strcpy(p1,p2);
		strcpy(p2,t);
	}
}

代码来源于互联网,仅供参考!