C语言:输入5个字符串,按由小到大(我想应该是strcmp函数比较)的顺序输出

用string函数编写源程序,我看了几个知道里的回答,很多都是无法实现的,

#include<stdio.h>

#include<string.h>

#define M 5

#define N 20

void main()

{

 char str[M][N],temp[N];

 int i,j;

 for(i=0;i<M;i++)

 {

  printf("请输入第%d个字符串:",i+1);

  scanf("%s",&str[i]);

 }

 printf("排序前:\n");

 for(i=0;i<M;i++)

  printf("第%d个字符串:%s\n",i+1,str[i]);

 for(j=0;j<M-2;j++)

 {

  for(i=0;i<=M-j-1;i++)

   if(strcmp(str[i],str[i+1])>0)

   {

    strcpy(temp,str[i]);

    strcpy(str[i],str[i+1]);

    strcpy(str[i+1],temp);

   }

 }

 printf("排序后:\n");

 for(i=0;i<M;i++)

  printf("第%d个字符串:%s\n",i+1,str[i]);

}

下面是程序运行的截图,供你参考。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-01
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
main()
{char a[6][80];
int i,j;
for(i=0;i<5;i++) gets(a[i]);
for(i=0;i<5;i++)for(j=i+1;j<5;j++)
if(strcmp(a[i],a[j])>0)
{strcpy(a[5],a[i]);strcpy(a[i],a[j]);strcpy(a[j],a[5]);}
for(i=0;i<5;i++) puts(a[i]);

system("pause");
return 0;
}
相似回答