求教一道C语言题目
【问题描述】输入5个字符串,输出其中最大的字符串。【输入形式】首先打印提示“Input5srings:";然后另起一行输入五个字符串,每个字符串之间用空格或回车或制表符隔...
【问题描述】
输入5个字符串,输出其中最大的字符串。
【输入形式】
首先打印提示“Input 5 srings:";然后另起一行输入五个字符串,每个字符串之间用空格或回车或制表符隔开。
【输出形式】
首先打印“Max is:”;紧跟后面输出最大的一个字符串;空格;换行。
【运行时的输入输出样例】(下划线部分表示输入)
Input 5 srings:
Wang
Li
Zha
Jin
Xian
Max is:Zha
我的答案:
#include<stdio.h>
#include<string.h>
int main(void)
{
char a[80],b[80],c[80],d[80],e[80],max;
printf("Input 5 srings: \n");
gets(a);
gets(b);
gets(c);
gets(d);
gets(e);
if((strcmp(a,b)>0)&(strcmp(a,c)>0)&(strcmp(a,d)>0)&(strcmp(a,e)>0))
max=a;
else if((strcmp(b,a)>0)&(strcmp(b,c)>0)&(strcmp(b,d)>0)&(strcmp(b,e)>0))
max=b;
else if((strcmp(c,a)>0)&(strcmp(c,b)>0)&(strcmp(c,d)>0)&(strcmp(c,e)>0))
max=c;
else if((strcmp(d,a)>0)&(strcmp(d,b)>0)&(strcmp(d,c)>0)&(strcmp(d,e)>0))
max=d;
else
max=e;
printf("Max is: %s",max);
return 0;
}
一直无法运行,求教哪里错了? 展开
输入5个字符串,输出其中最大的字符串。
【输入形式】
首先打印提示“Input 5 srings:";然后另起一行输入五个字符串,每个字符串之间用空格或回车或制表符隔开。
【输出形式】
首先打印“Max is:”;紧跟后面输出最大的一个字符串;空格;换行。
【运行时的输入输出样例】(下划线部分表示输入)
Input 5 srings:
Wang
Li
Zha
Jin
Xian
Max is:Zha
我的答案:
#include<stdio.h>
#include<string.h>
int main(void)
{
char a[80],b[80],c[80],d[80],e[80],max;
printf("Input 5 srings: \n");
gets(a);
gets(b);
gets(c);
gets(d);
gets(e);
if((strcmp(a,b)>0)&(strcmp(a,c)>0)&(strcmp(a,d)>0)&(strcmp(a,e)>0))
max=a;
else if((strcmp(b,a)>0)&(strcmp(b,c)>0)&(strcmp(b,d)>0)&(strcmp(b,e)>0))
max=b;
else if((strcmp(c,a)>0)&(strcmp(c,b)>0)&(strcmp(c,d)>0)&(strcmp(c,e)>0))
max=c;
else if((strcmp(d,a)>0)&(strcmp(d,b)>0)&(strcmp(d,c)>0)&(strcmp(d,e)>0))
max=d;
else
max=e;
printf("Max is: %s",max);
return 0;
}
一直无法运行,求教哪里错了? 展开
4个回答
展开全部
#include<stdio.h>
#include<string.h>
int main(void){
char a[80],b[80],c[80],d[80],e[80],max[80];//你的max没初始化大小
printf("Input 5 srings: \n");
gets(a);
gets(b);
gets(c);
gets(d);
gets(e);
if((strcmp(a,b)>0)&(strcmp(a,c)>0)&(strcmp(a,d)>0)&(strcmp(a,e)>0)) strcpy(max,a);
else if((strcmp(b,a)>0)&(strcmp(b,c)>0)&(strcmp(b,d)>0)&(strcmp(b,e)>0)) strcpy(max,b);
else if((strcmp(c,a)>0)&(strcmp(c,b)>0)&(strcmp(c,d)>0)&(strcmp(c,e)>0)) strcpy(max,c);
else if((strcmp(d,a)>0)&(strcmp(d,b)>0)&(strcmp(d,c)>0)&(strcmp(d,e)>0)) strcpy(max,d);
else strcpy(max,e);
printf("Max is: %s",max);
while(1);
return 0;
#include<string.h>
int main(void){
char a[80],b[80],c[80],d[80],e[80],max[80];//你的max没初始化大小
printf("Input 5 srings: \n");
gets(a);
gets(b);
gets(c);
gets(d);
gets(e);
if((strcmp(a,b)>0)&(strcmp(a,c)>0)&(strcmp(a,d)>0)&(strcmp(a,e)>0)) strcpy(max,a);
else if((strcmp(b,a)>0)&(strcmp(b,c)>0)&(strcmp(b,d)>0)&(strcmp(b,e)>0)) strcpy(max,b);
else if((strcmp(c,a)>0)&(strcmp(c,b)>0)&(strcmp(c,d)>0)&(strcmp(c,e)>0)) strcpy(max,c);
else if((strcmp(d,a)>0)&(strcmp(d,b)>0)&(strcmp(d,c)>0)&(strcmp(d,e)>0)) strcpy(max,d);
else strcpy(max,e);
printf("Max is: %s",max);
while(1);
return 0;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
max变量不是数组,把max变为max[80],还有数组之间不能用max直接等于a的,用字符串复制公式就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询