如何将5个字符串从键盘输入给二维字符数组name。把这5个字符串按由小到大的顺序排序并将排序的结果输出?

如题所述

第1个回答  2011-05-11
#include<stdio.h>
#include<stdlib.h>
int main()
{
char s[4][20];//定义一个二维数组
char temp[20];//定义一个用于交换的中间变量
int i,j;
puts("\nenter string:");
for(i=0;i<4;i++)
gets(s[i]);
for(i=0;i<3;i++)
{
int max=i;
for(j=i;j<4;j++)
if(strcmp(s[i],s[j])>0)
max=j;//交换下标
strcpy(temp,s[max]);
strcpy(s[max],s[i]);
strcpy(s[i],temp);
}
for(i=0;i<4;i++)
puts(s[i]);
return 0;
}
本回答被提问者采纳
第2个回答  2011-05-11
#define N 5
void sort(char *p[],int n){
char *str;
int i,j,k;
for(i=0;i<n;i++)
{
k=i;
strcpy(str,p[i]);
for(j=i+1;j<n;j++)
{
if(strcmp(p[j],str)<0)
{
k=j;
}
}
if(i!=k)
{
strcpy(p[i],p[k]);
strcpy(p[k],str);
}
}
}

void print(char *p[],int n){
int i;
printf("\n\nHere is the sorted result:\n");
for(i=0;i<n;i++)
{
printf("%s\n",p[i]);
}
}

main(){

char *strarray[N];
int i;
printf("Please input characters:\n");
for(i=0;i<N;i++)
{
gets(strarray[i]);
}

sort(strarray,N);
print(strarray,N);
}
相似回答