求解一道C语言题~~~急~~~
int n)中用选择排序法对其排序,并将最长串在主函数中输出。 展开
#include<stdio.h>
#include<string.h>
#include<malloc.h>
int sort(char* strings[],int n)
{
int i,j,k,max,maxlen;
char temp[50];
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(strings[j],strings[k])>0)
k=j;
if(k!=j)
{
strcpy(temp,strings[k]);
strcpy(strings[k],strings[i]);
strcpy(strings[i],temp);
}
}
for(i=0;i<n;i++)
if(i==0) {max=0;maxlen=strlen(strings[0]);}
else
{
if(maxlen<strlen(strings[i]))
max=i;
}
return max;
}
void main()
{
char* str[100];
int i,n,p;
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{ str[i]=(char*)malloc(sizeof(char)*50);
gets(str[i]);
}
p=sort(str,n);
for(i=0;i<n;i++)
puts(str[i]);
printf("最长字符串为:");
puts(str[p]);
}
看懂了,谢谢~~~