高手帮忙看看程序写的对不对,有错了,错在哪,谢啦

来源:百度知道 编辑:UC知道 时间:2024/07/08 01:37:34
题目是 输入三个字符串,按照由小到大的顺序输出
main()
{ int i;
char str[3],*p1,*p2,*p3,*p;
for(i=0;i<3;i++)
{printf("input a string:");
scanf("%s",str[i]);}
p1=str[0];
p2=str[1];
p3=str[2];
if(str[0]>str[1])
{ p=p2;
p2=p1;
p1=p;
if(str[1]>str[2])
{ p=p3;
p3=p2;
p2=p;
}
}
else if(str[1]>str[2])
{ p=p3;
p3=p2;
p2=p;
if(str[0]>str[1])
{ p=p1;
p1=p2;
p2=p ;
}
}
printf("%s>%s>%s",*p1,*p2,*p3);
}

#include<stdio.h>
#include<string.h>
void main()
{
int i,j;
char str[3][50],*p1,*p2,*p3,tmp[50];
for(i=0;i<3;i++)
{
printf("input a string:");
gets(str[i]);
}
p1=str[0];
p2=str[1];
p3=str[2];
for(i=0;i<2;i++)
{
for(j=i+1;j<3;j++)
{
if(strcmp(str[j],str[i])>0)
{
strcpy(tmp,str[j]);
strcpy(str[j],str[i]);
strcpy(str[i],tmp);
}
}
}
printf("%s>%s>%s\n",p1,p2,p3);
}

错误多多,看看,没上机试,给点意见,有错勿怪,自己搞定
main()
{ int i;
char str[3],*p1,*p2,*p3,*p;
for(i=0;i<3;i++)
{printf("input a string:");
scanf("%s",str[i]);}
//这里错了,%s 只能接收一个字符串的地址,改成这
//样,不用for语句就可以了
//printf("input a string:");
//scanf("%s",str);
//这样就可以接收一个字符串了,
p1=str[0];
p2=str[1];