从键盘上输入3个字符串后原样输出,并要求找出其中最大者进行输出。(用C语言数组方法谢谢,我是初学者)

如题所述

#include<stdio.h>
#include<string.h>
main()
{
char x[128][128]={0};
char ch[4096]={0};
int t[10];
int i=0;
int w=0,p=0;
int len=0,max=0,top=0;
gets(ch);
puts(ch);//有空格输入要这个函数
while(ch[i]!='\0' && i<4096)
{
if(ch[i]==' ')
{
w++;
p=0;
i++;
continue;
} //一个空格表示一个单词分隔
else
x[w][p]=ch[i];
p++;
i++;
}
//w 就是单词的个数了
for(int j=0;j<=w;j++)
{
len=strlen(x[j]);
if(max<len)
{
max=len;
top=j;
}
}
i=0;
for( j=0;j<=w;j++)
{
len=strlen(x[j]);
if(max==len)
{
t[i]=j;
i++;
}
}
for(w=0;w<i;w++)
{
printf("%s 最长\n",x[t[w]]);
}

}
希望对你有帮助!网上有几个答案不太完美,因为如果我输入 hello world hi 的话,只输出hello而不输出world,其实稍加改动在下边再加一个循环就可以解决了
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言编程:从键盘上输入三个字符串,要求找出其中最大者
字符串比较使用strcmp函数。三个字符串比较大小,先比较字符串a和字符串b的大小,把大的字符串和字符串c比较,最后输出最大的字符串即可。strcmp函数原型:int strcmp( char *str1 , char *str2 )功能:比较字符串str1和strl2的大小。结果:若str1==str2,则返回零;若str1>str2,则返回正数;...

用c语言编写一个程序,从键盘上输入3个字符串,输出其中的最大者_百度...
1. int strcmp( const char *str1, const char *str2 );功能:比较字符串str1 and str2, 返回值如下:返回值 < 0 str1 < str2 = 0 str1 == str2 > 0 str1 > str2 include <stdio.h>#include <string.h>int main(){ char a[100], b[100], c[100]; printf...

用C语言输入3个字符串,并找出其中的最大值?
返回最大的那个数组下标int main(){ char str[3][10]; int indext; int len[3];\/\/3个字符串长度 int sum[3];\/\/3个字符串的ASC码总和 printf("测试:输入3个字符串(最多9个字符):\\n"); scanf("%s",&str[0][0]); scanf("%s",&str[1][...

C语言作业: 输入三个字符串,输出最大的字符串
include "stdio.h"include "conio.h"int main(){ char string[20];char str[3][20];int i;for(i=0;i<3;i++)gets(str[i]);if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);else strcpy (string,str[1]);if(strcmp( str[2],string)>0)strcpy(string,str[2]);print...

有三个字符串,要求找出其中最大者
int main(){ char str[3][20];char string[20];int i;for(i=0;i<3;i++){ gets(str);} if(strcmp(str[0],str[1])>0){ strcpy(string,str[0]);} else { strcpy(string,str[1]);} if(strcmp(str[2],string)>0){ strcpy(string,str[2]);} printf("\\n");printf("the ...

输入三个字符串,找出最大和最小,并且输出最大和最小的字符串,用C++语 ...
int main(void){ char a[100],b[100],c[100],*p1=a,*p2=b,*p3=c,*p;gets(a);gets(b);gets(c);if(strcmp(p1,p2)>0){p=p1;p1=p2;p2=p;} if(strcmp(p1,p3)>0){p=p1;p1=p3;p3=p;} if(strcmp(p2,p3)>0){p=p2;p2=p3;p3=p;} printf("最小的字符串是%s\\n",p1...

编写程序,输入3个字符串,比较它们的大小,并将它们按由小到大的顺序输 ...
6、使用printf输入。 7、运行程序,可以看到输入的3个字符串,比较它们的大小,并将它们按由小到大的顺序输出。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询 其他...

C语言 有3个字符串,找出其中的最大者
你可以认为这是一个一维数组,有三个元素,每个元素又是一个有20个char的数组。其实这是一个字符串数组。每个字符串最大可容纳20个字符。

c语言,求助大神! 从键盘上输入三个字符串,将这三个串从小到大排序。
C的字符串是用字符数组操作的,所以排序应该用指针数组完成,以避免字符串拷贝。由于只有3个字符串,用直接操作的办法而不用循环以避免不必要的开销;输入函数选用fgets,既可以方便地控制输入长度不越界,又能允许字符串中存在空格。代码如下:include "stdio.h"#include "string.h"int main(int argc,...

输入3个字符串,按由小到大的顺序输出。(用指针方法处理)
首先,程序会提示用户输入三个字符串,然后通过strcmp函数进行比较,如果前一个字符串大于后一个,就使用swap函数交换它们的位置,这个过程重复三次,确保三个字符串的顺序排列。swap函数的作用是临时存储一个字符串,然后将另一个字符串的内容复制到原位置,再将存储的内容复制回去,实现了字符串的交换。...

相似回答