当前位置:   article > 正文

C语言:在主函数中输入10个字符串,用另一个函数对他们排序,然后再主函数输入这十个已排好序的字符串_18.在主函数中输入10个字符串,用另一个函数对10个字符串排序,然后在主函数输出这

18.在主函数中输入10个字符串,用另一个函数对10个字符串排序,然后在主函数输出这

题目:在主函数中输入10个字符串,用另一个函数对他们排序,然后在主函数输出这十个已排好序的字符串
首先我们先来看,对十个等长字符串进行编写。

(1)用字符型二维数组进行排序

#include<stdio.h>
#include<string.h>  //引用字符函数
int main()
{
	void sort(char s[][6]);
	int i;
	char str[10][6];
	printf("输入十个等长的字符串:\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; 
}
void sort(char s[10][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)  //s[j]的字符串大于s[j+1]时输出正整数
	      {
		  	  strcpy(p,s[j]);
		  	  strcpy(s[j],s[j+1]);
		  	  strcpy(s[j+1],p);
		  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

(2)用指向一维数组的指针作函数参数

#include<stdio.h>
#include<string.h> 
int main()
{
	void sort(char (*p)[6]);
	int i;
	char str[10][6];
	char (*p)[6]; 
	printf("输入十个等长的字符串:\n");
	for(i=0;i<10;i++)
	   scanf("%s",str[i]);
	p=str;
	sort(str);
	printf("排序后结果是:\n");
	for(i=0;i<10;i++)
	    printf("%s\n",str[i]);
	return 0; 
}
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);
		  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

以上两种方法是对等长字符串进行编写,并排序的。我们先来看看运行结果
运行图

那么如果我们需要输入不等长的字符串时,应该如何操作呢?
大家可以前往博主的另一篇文章观看:不等长字符串程序

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/292971
推荐阅读
相关标签
  

闽ICP备14008679号