c语言字符串比大小问题
展开全部
首先比较第一个字符,最小的是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
由于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
展开全部
这个是你程序修改以后的结果,首先,字符数组只有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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询