A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaodixing 中级黑马   /  2014-5-29 00:27  /  1175 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xiaodixing 于 2014-5-29 20:31 编辑

#include<stdio.h>
int main()
{
    int i=0;
    int len=0;
    int max=0;
    int j=0;
    int m=0;
    char a[100];
    printf("输入一个只含有字母和空格的字符串,间隔用空格分开");
    gets(a);
    for (i=0;a!='\0'; i++)
    {
        if (a!=' ')
        {
            len++;
            continue;
        }
        if (len>max)
        {
            max=len;
            j=i-len;
            m=i;
            len=0;
        }
    }
        for (i=j; i<m; i++) {
        printf("%c",a);
  }
            printf("字符串中最长单词为%d\n",max);

    }
为什么我加上最后的for循环,max的值就变了呢。

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

2 个回复

倒序浏览
改成这样就行了,字符数组变量a都没有下标,所以会出错

#include<stdio.h>
int main()
{
    int i=0;
    int len=0;
    int max=0;
    int j=0;
    int m=0;
    char a[100];
    printf("输入一个只含有字母和空格的字符串,间隔用空格分开");
    gets(a);
    for (i=0;a[i]!='\0'; i++)
    {
        if (a[i]!=' ')
        {
            len++;
            continue;
        }
        if (len>max)
        {
            max=len;
            j=i-len;
            m=i;
            len=0;
        }
    }
    for (i=j; i<m; i++) {
        printf("%c",a[i]);
    }
    printf("字符串中最长单词长度为%d\n",max);
   
}

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报
奥   谢谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马