众里寻他千百度.. 2020-12-14 21:24 采纳率: 0%
浏览 30
已结题

输入一句话,输出最长的单词,代码输出不对,求大佬指正

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
    char a[100];
    int i,j=0,n=-1,k=0,n1,m1,y;
    printf("Input a sentence:");
    gets(a);
    for(i=0;i!='\0';i++){
        if(a[i]!=' ') {j++,n++;}
        else if(a[i]==' '){
            if(j>k) {k=j,n1=n,m1=n-j+1;}
        j=0;
        n++;}
    } 
    for(y=m1;y<=n1;y++){
        printf("%c",a[y]);
    }
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 「已注销」 2020-12-14 22:16
    关注
    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    int main()
    {
        char a[100] = "hello world is the first word!!";
        int maxstart = 0, maxlen = 0,i = 0,iter = 0,iterlen = 0;
    
        for(;a[i] != '\0'; i++)
        {
            if(a[i] == ' ')
            {
                iterlen = 0;
                iter = i + 1;
                continue;
            }
            iterlen++;
            if(maxlen < iterlen)
            {
                maxstart = iter;
                maxlen = iterlen;
            }
        }
        a[maxstart + maxlen] = 0;
        printf("%s\n",a+maxstart);
        return 0;
    }
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月8日