C语言 输入10个等长的字符串,用另一个函数对它们排序,由小到大依次输出字符串

Posted C语言大本营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 输入10个等长的字符串,用另一个函数对它们排序,由小到大依次输出字符串相关的知识,希望对你有一定的参考价值。

方法一:用字符型二维数组

#include <stdio.h>
#include <string.h>
void sort(char s[10][6]) //形参s是指向由6个元素组成的一维数组的指针
	int i,j;
	char *p,temp[10];
	p=temp;
	for(i=0;i<9;i++)
		for(j=0;j<9-i;j++)
			if(strcmp(s[j],s[j+1])>0)
				strcpy(p,s[j]);
				strcpy(s[j],s[j+1]);
				strcpy(s[j+1],p);
			

int main()
	int i;
	char str[10][6];
	printf("请输入10个字符串:\\n");
	for(i=0;i<10;i++)
		scanf("%s",str[i]);
	sort(str);
	printf("从小到大排序为:\\n");
	for(i=0;i<10;i++)
		printf("%s\\n",str[i]);
	return 0;

方法二:用指向一维数组的指针作函数参数

#include <stdio.h>
#include <string.h>
void sort(char (*s)[6])
	int i,j;
	char temp[6],*t=temp;
	for(i=0;i<9;i++)
		for(j=0;j<9-i;j++)
			if(strcmp(s[j],s[j+1])>0)
				strcpy(t,s[j]);
				strcpy(s[j],s[j+1]);
				strcpy(s[j+1],t);
			

int main()
	int i;
	char str[10][6];
	char (*p)[6];
	printf("请输入10个字符串:\\n");
	for(i=0;i<10;i++)
		scanf("%s",str[i]);
	p=str;
	sort(p);
	printf("从小到大排序为:\\n");
	for(i=0;i<10;i++)
		printf("%s\\n",str[i]);
	return 0;

方法三:用指针数组

#include <stdio.h>
#include <string.h>
void sort(char *s[])
	int i,j;
	char *temp;
	for(i=0;i<9;i++)
		for(j=0;j<9-i;j++)
			if(strcmp(*(s+j),*(s+j+1))>0)
				temp=*(s+j);
				*(s+j)=*(s+j+1);
				*(s+j+1)=temp;
			

int main()
	int i;
	char *p[10],str[10][6];
	for(i=0;i<10;i++)
		p[i]=str[i];
	printf("请输入10个字符串:\\n");
	for(i=0;i<10;i++)
		scanf("%s",p[i]);
	sort(p);
	printf("从小到大排序为:\\n");
	for(i=0;i<10;i++)
		printf("%s\\n",p[i]);
	return 0;

以上是关于C语言 输入10个等长的字符串,用另一个函数对它们排序,由小到大依次输出字符串的主要内容,如果未能解决你的问题,请参考以下文章

在主函数中输入10个等长的字符串。用另一函数对它们排序,然后在主函数输出这10个 已排好序的字符串

C语言 精典排序算法程序合集

C语言 精典排序算法程序合集

C语言 精典排序算法程序合集

用C语言写一个函数,用冒泡法对输入的10个字符按由小到大的顺序排列

C语言:写一函数,用“冒泡法”对输入的10个字符按由小到大顺序排列