都3个字符串排序
if(strcmp(s[i],s[i+1])) { q=s[i]; s[i]=s[i+1]; s[i+1]=q; }这个程序为什么错啊????急求啊!!!!
答案:2 悬赏:30 手机版
解决时间 2021-02-02 01:00
- 提问者网友:末路
- 2021-02-01 18:05
#include#includeint main(){ char s[3][100]; char (*p)[100],*q; int i,j; p=s; for(i=0;i<3;i++) scanf("%s",s[i]); for(i=0;i<2;i++) for(j=0;j<2-i;j++) if(strcmp(s[i],s[i+1])) { q=s[i]; s[i]=s[i+1]; s[i+1]=q; } for(i=0;i<3;i++) printf("%s\n",s[i]); return 0;}
都3个字符串排序
都3个字符串排序
最佳答案
- 五星知识达人网友:雾月
- 2021-02-01 19:33
你可能把字符串的比较和字符的比较搞混了,另外strcmp比较2个字符串,返回值
可能为-1,0,1,所以建议main函数修改如下:
int main()
{
char temp[100];
char s[3][100];
int i,j;
for(i=0;i<3;i++)
scanf("%s",s[i]);
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
if(strcmp(s[i],s[j])>0)
{
strcpy(temp,s[i]);
strcpy(s[ i ],s[ j ]);
strcpy(s[ j ],temp);
}
for(i=0;i<3;i++)
printf("%s\n",s[i]);
return 0;
}
可能为-1,0,1,所以建议main函数修改如下:
int main()
{
char temp[100];
char s[3][100];
int i,j;
for(i=0;i<3;i++)
scanf("%s",s[i]);
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
if(strcmp(s[i],s[j])>0)
{
strcpy(temp,s[i]);
strcpy(s[ i ],s[ j ]);
strcpy(s[ j ],temp);
}
for(i=0;i<3;i++)
printf("%s\n",s[i]);
return 0;
}
全部回答
- 1楼网友:痴妹与他
- 2021-02-01 20:57
你说呢...
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯