c语言字符串比大小问题

 我来答
锺离白山隋枫
游戏玩家

2019-07-22 · 非著名电竞玩家
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:810万
展开全部
首先比较第一个字符,最小的是a开始的然后是c开始的,最后是d开始的
由于a开始的字符串有"abc","aabdfg","abbd",c和d开始的各自有一个
所以"dcdbe"是最大的,倒数第二大的是"cd"
然后再看a开始的,比较第二个字符,最小的是a,只有一个字符串"aabdfg";其次是b,有两个字符串;
所以"aabdfg"是5个中最小的;
第二个字符是b的两个字符串"abc","abbd"再比较第3个字符,最小的是b、然后是c
所以abbd<abc
所以最后结果为aabdfg<abbd<abc<cd<dcdbe
俺吖王16
2020-05-13 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:903万
展开全部
这个是你程序修改以后的结果,首先,字符数组只有5个元素的长度,你却输入了6个元素(0-5)然后,字符串的话最后要有一个'\0'结尾的,所以要预留出来,还有你那个strcpy写错了
#include
#include
main()
{
char
a[5],b[5],c[5],d[5];
int
i;
printf("请输入a数组的字符:\n");
for(i=0;i<4;i++)
//for(i=0;i<=5;i++)
scanf("%c",&a[i]);
//scanf("%s",&a[i]);
a[4]='\0';
printf("请输入b数组的字符:\n");
for(i=0;i<4;i++)
//for(i=0;i<=5;i++)
scanf("%c",&b[i]);
//scanf("%s",&b[i]);
b[4]='\0';
printf("请输入c数组的字符:\n");
for(i=0;i<4;i++)
//for(i=0;i<=5;i++)
scanf("%c",&c[i]);
//scanf("%s",&c[i]);
c[4]='\0';
if
(strcmp(a,b)>0)
strcpy(d,a);
else
strcpy(d,b);
if(strcmp(d,c)<0)
strcpy(d,c);//stcpy(d,c);
printf("字符串%s最大\n",d);
}
下面这个是最常用的形式,因为gets函数可以直接获得字符串
#include
#include
main()
{
char
a[5],b[5],c[5],d[5];
int
i;
printf("请输入a数组的字符:\n");
gets(a);
printf("请输入b数组的字符:\n");
gets(b);
printf("请输入c数组的字符:\n");
gets(c);
if
(strcmp(a,b)>0)
strcpy(d,a);
else
strcpy(d,b);
if(strcmp(d,c)<0)
strcpy(d,c);//stcpy(d,c);
printf("字符串%s最大\n",d);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式