改下错误..
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#define M 100
#define N 100
main()
{ char a[M];
char *p[N]={NULL};
char *q=NULL;
int i=0,s,k;
while(*fgets(a,M,stdin)!='\n'&&(i<N))/*输入字符串*/
{
if(p[i]=(char*)malloc(strlen(a)+1)==NULL) /* 请求空间 */
{
printf("......");
return 1;
}
strcpy(p[i++],a); /* 把字符串放到p里 */
}
k=i;
while(!s) /* 判断字符串的长度 */
{
s=1;
for(i=0;i<k-1;i++)
{if(strlen(p[i])>strlen(p[i+1]))
{q=p[i];p[i]=p[i+1];p[i+1]=q;s=0;} } /* 交换长度 */
}
for(i=0;i<k-1;i++)
{
printf("%s",p[i]); /* 输出 */
free(p[i]);
p[i]=NULL; }
getch();
return 0;
}
/*字符串的长度交换.短到长错在哪里.?*/ 得不出结果..