(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呢?怎么改程序才正确? 展开
#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呢?怎么改程序才正确? 展开
展开全部
eeeee
就是最小的啊
你是不是要输出最短的啊
如果是
就要用strlen()
而不是strcmp()
就是最小的啊
你是不是要输出最短的啊
如果是
就要用strlen()
而不是strcmp()
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用错了字符串处理函数
不是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);
}
}
不是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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
e不比q小吗?
你是在开玩笑吗?
你是在开玩笑吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
strcmp比较字符串的原则是:一次比较两个字符串同一位置的一对字符,若它们的ASCII码相同,则继续比较下一对字符。若它们的ASCII码不同,则ASCII码较大的字符所在的字符串较大;若所有的字符均相同,则两个字符串相等;若一个字符串全部K个字符与另一个字符串的前K个字符相同,则字符串较长的较大。
你编写的程序是没有错,只是你对概念理解错而已,qqq和eeeee相比是先从第一个字符先比的,因为e比q小,所以eeeee比qqq小,比较一次就结束了
你编写的程序是没有错,只是你对概念理解错而已,qqq和eeeee相比是先从第一个字符先比的,因为e比q小,所以eeeee比qqq小,比较一次就结束了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询