回 帖 发 新 帖 刷新版面

主题:麻烦帮我看看是怎么了

#include<stdio.h>
#include<string.h>
static int t=0;
void main()
{
    int m(n);
    int i;
    char n[100];
    gets(n);
    printf("最长的单词是:");
    for(i=m(n);i<=t;i++)
        printf("%c",n[i]);
    printf("\n");
}

int m(n)
{
    int i,j=0,k;
    [color=FF0000]for(i=0;n[i]!='\0';i++)[/color]
    {
        [color=FF0000]if(n[i]!=' ')[/color]
            j++;
        else if(t<j)
        {
            k=i-j;
            t=j;
        }
        j=0;
    }
    return(k);
}

红色处提示:subscript requires array or pointer type

回复列表 (共9个回复)

沙发

int m(n)
你的形参里怎么没写类型?

板凳

改了怎么又内存错误?

#include<stdio.h>
#include<string.h>
static int t=0;
void main()
{
    int m(char n[]);
    int i;
    char n[100];
    gets(n);
    printf("最长的单词是:");
    for(i=m(n);i<=t;i++)
        printf("%c",n[i]);
    printf("\n");
}

int m(char n[])
{
    int i,j=0,k;
    for(i=0;n[i]!='\0';i++)
    {
        if(n[i]!=' ')
            j++;
        else if(t<j)
        {
            k=i-j;
            t=j;
        }
        j=0;
    }
    return(k);
}

3 楼

我运行你的程序倒是没出错误,只不过没结果,你能注释一下你的代码吗?

4 楼

#include<stdio.h>
static int t=0;
void main()
{
    int m(char n[]);
    int i;
    char n[100];
    gets(n);     /*输入一英文句子*/
    printf("最长的单词是:");   
    for(i=m(n);i<=t;i++)
        printf("%c",n[i]);    /*输出句子中最长的单词*/
    printf("\n");
}

int m(char n[])          /*求出输出最长的单词首字母所对应字符串底数*/
{
    int i,j=0,k;
    for(i=0;n[i]!='\0';i++)
    {
        if(n[i]!=' ')
            j++;
        else if(t<j)
        {
            k=i-j;
            t=j;    /*最长单词的长度为t*/
        }
        j=0;
    }
    return(k);
}

5 楼

你子函数里的j=0写错地方了吧,是不是应该写在else里才对

6 楼

子函数的形式参数生命有误!

7 楼

还是一个错的!

8 楼


i=m(n)是什么意思?

9 楼

调有m这个函数,参数为n

我来回复

您尚未登录,请登录后再回复。点此登录或注册