(C语言)输入3个字符串,将其中最小的输出。

#include<stdio.h>#include<string.h>main(){chara[10];charb[10];charc[10];printf("请输入字符... #include<stdio.h>
#include<string.h>
main(){

char a[10];
char b[10];
char c[10];

printf("请输入字符串a:\n");
gets(a);
printf("请输入字符串b:\n");
gets(b);
printf("请输入字符串c:\n");
gets(c);
if(strcmp(a,b)!=0&&strcmp(a,c)!=0&&strcmp(b,c)!=0){
if(strcmp(a,b)<0){
if(strcmp(a,c)<0)
printf("最小的字符串是:%s\n",a);
else
printf("最小的字符串是:%s\n",c);
}
else{
if(strcmp(b,c)<0)
printf("最小的字符串是:%s\n",b);
else
printf("最小的字符串是:%s\n",c);
}
}
}
这个程序错哪了?怎么改?
程序运行如下:
请输入字符串a:
qqq
请输入字符串b:
wwww
请输入字符串c:
eeeee
最小的字符串是:eeeee
为什么输出的是eeeee,而不是aaa呢?怎么改程序才正确?
为什么输出的是eeeee,而不是qqq呢?怎么改程序才正确?
为什么输出的是eeeee,而不是qqq呢?怎么改程序才正确?
为什么输出的是eeeee,而不是qqq呢?怎么改程序才正确?
展开
 我来答
李凯_华电_
推荐于2018-03-20 · TA获得超过507个赞
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:197万
展开全部
eeeee
就是最小的啊
你是不是要输出最短的啊
如果是
就要用strlen()
而不是strcmp()
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我问无愧
2009-04-25
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
你用错了字符串处理函数
不是strcmp(),而是strlen().
正确的程序--
#include<stdio.h>
#include<string.h>
main()
{
char a[10];/*如果你想字符串输入时没有长度限制的话,建议你用字符串指针*/
char b[10];/*例如:"char *a "*/
char c[10];
printf("请输入字符串a:\n");
gets(a);
printf("请输入字符串b:\n");
gets(b);
printf("请输入字符串c:\n");
gets(c);
printf("最小的字符串是:");
if(strlen(a)>strlen(b))
{
if(strlen(b)>strlen(c)) puts(c);
else puts(b);
}
else
{
if(strlen(a)>strlen(c)) puts(c);
else puts(a);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2009-04-25 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3757万
展开全部
e不比q小吗?
你是在开玩笑吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
及飞掣Ec
2009-04-25 · TA获得超过174个赞
知道答主
回答量:113
采纳率:0%
帮助的人:0
展开全部
strcmp比较字符串的原则是:一次比较两个字符串同一位置的一对字符,若它们的ASCII码相同,则继续比较下一对字符。若它们的ASCII码不同,则ASCII码较大的字符所在的字符串较大;若所有的字符均相同,则两个字符串相等;若一个字符串全部K个字符与另一个字符串的前K个字符相同,则字符串较长的较大。
你编写的程序是没有错,只是你对概念理解错而已,qqq和eeeee相比是先从第一个字符先比的,因为e比q小,所以eeeee比qqq小,比较一次就结束了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式