C语言编程:写一个函数,输入一行字符,将此字符串中最长的单词输出,求大神帮我看看错误在哪! 10
#include<stdio.h>voidmax(chara[]){inti,j,n=0,m=0,sum=0,t=0;//n,sum是计数器,记录单词数量,m记录第几个单...
#include <stdio.h>
void max(char a[]){
int i,j,n=0,m=0,sum=0,t=0; //n,sum是计数器,记录单词数量,m记录第几个单词
for(i=0;i<strlen(a);i++){ //该循环用于求出最长的单词是字符串中的第几个单词。
if(a[i]!=' '){
sum++;
if(n<sum){
n=sum; //记录最长单词的字母个数
}
}
else{ //遇到空格,记录这个单词是第几个单词。
m++;
sum=0;
}
}
for(i=0;i<strlen(a);i++){ //该循环用于打印出最长的单词
if(a[i]==' '){
t++; //t用于记录单词之间的空格
if(t==m-1){
printf("\n最长的单词就是:");
for(j=i+1;j<i+n;j++){
printf("%c",a[j]);
}
}
}
}
}
main(){
char a[100];
printf("\n请输入字符串:");
scanf("%s",&a);
max(a);
}
上面这个是我自己写的,但我输入了:a bc def ghijk lm n之后就没有结果了,找好久找不出问题来,无奈只能求助各位大神了!我初学C。。。 展开
void max(char a[]){
int i,j,n=0,m=0,sum=0,t=0; //n,sum是计数器,记录单词数量,m记录第几个单词
for(i=0;i<strlen(a);i++){ //该循环用于求出最长的单词是字符串中的第几个单词。
if(a[i]!=' '){
sum++;
if(n<sum){
n=sum; //记录最长单词的字母个数
}
}
else{ //遇到空格,记录这个单词是第几个单词。
m++;
sum=0;
}
}
for(i=0;i<strlen(a);i++){ //该循环用于打印出最长的单词
if(a[i]==' '){
t++; //t用于记录单词之间的空格
if(t==m-1){
printf("\n最长的单词就是:");
for(j=i+1;j<i+n;j++){
printf("%c",a[j]);
}
}
}
}
}
main(){
char a[100];
printf("\n请输入字符串:");
scanf("%s",&a);
max(a);
}
上面这个是我自己写的,但我输入了:a bc def ghijk lm n之后就没有结果了,找好久找不出问题来,无奈只能求助各位大神了!我初学C。。。 展开
1个回答
2016-06-27
展开全部
voidcompute(constcharline[],charr[]){charc;intl=0,i,j,k;chara[80][80];//for(i=0;i0)if(strlen(a[i])>strlen(r))//要的是最长的,不是最大的!!strcpy(r,a[i]);}}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询