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

2025-03-25 15:52:31
推荐回答(2个)
回答1:

#include
#include
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:

#define N 5
void sort(char *p[],int n){
char *str;
int i,j,k;
for(i=0;i {
k=i;
strcpy(str,p[i]);
for(j=i+1;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 {
printf("%s\n",p[i]);
}
}

main(){

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

sort(strarray,N);
print(strarray,N);
}