【求助】输入三个字符串,按照由小到大的顺序输出
#include <stdio.h>#include <string.h>
int main()
{
char string[20];
char str[3][20];
char *p,*q;
int i,l,m,n;
for(i=0;i<3;i++)
{
gets(str[i]);
}
p = str[0];
l=strcmp(p,p+1);
if(l>0)
{
strcpy(string,p);
strcpy(p,p+1);
strcpy(p+1,string);
}
m=strcmp(p,p+2);
if(m>0)
{
strcpy(string,p);
strcpy(p,p+2);
strcpy(p+2,string);
}
n=strcmp(p+1,p+2);
if(n>0)
{
strcpy(string,p);
strcpy(p+1,p+2);
strcpy(p+2,p+1);
}
for(q=p;q<p+3;q++)
puts(q);
}
编译没错,但是结果错误,在linux系统下的vi里边结果输出时段错误,这是为什么?