| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 882 人关注过本帖
标题:主函数出现local function definitions are illegal怎么办
只看楼主 加入收藏
connectify
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
主函数出现local function definitions are illegal怎么办
void main()
{
    int m,flag;
    SqStack S;
    char a[];
    fin>>m;
    for(int i=0;i<m;++i)
        fin>>a[i];
    InitStack(S);
    flag=MergeList(S,a[],m);

    if(flag)
        fout<<"yes!";
    else
        fout<,"no!";
    fin.close();
    fout.close();
}
搜索更多相关主题的帖子: function local 
2013-10-16 22:43
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:10 
char a[]; 改成char a[1024];
数组的至少要让编译器知道他的大小(开辟堆栈)

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-10-17 13:10
西安郑鑫
Rank: 7Rank: 7Rank: 7
来 自:陕西
等 级:黑侠
帖 子:163
专家分:624
注 册:2013-9-26
收藏
得分:2 
请教哈,这是什么语言,我只见过cin cout 没见过fin fout
我感觉卤煮没弄明白数组的声明。
int a[n];//声明了个有n个int的数组
int a[] = {1,2,3,4,5,6};//这样的话可以省略中括号中的n,编译器会自动根据大括号中数的个数来知道n是多少

还有,这块你得了解下变量声明在编译器中是何时进行的,就能理解数组声明为啥要知道那个n是多少,这块我也不太懂,你自己查查资料。

Hello World!------鑫花璐放
2013-10-17 17:25
connectify
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-16
收藏
得分:0 
回复 2楼 yuccn
还是报错啊
2013-10-17 19:19
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
回复 4楼 connectify
能贴完整代码吗  你一楼的代码 错误一堆一堆

DO IT YOURSELF !
2013-10-17 19:25
connectify
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-16
收藏
得分:0 
回复 3楼 西安郑鑫
c++
2013-10-18 06:52
connectify
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-16
收藏
得分:0 
回复 5楼 wp231957
#include<iostream.h>
#include<fstream.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#define STACK_INIT_SIZE 100
#define OK 1
ifstream fin("input.txt",ios::in);   
ofstream fout("output.txt",ios::out);

struct SqStack
{
    char *base;
    char *top;
    int  stacksize;
};
void push(SqStack &S,char e)
{
    *S.top++=e;
}
int pop1(SqStack &S,char k)
{
    k=*--S.top;
    if(k==')')
        return 1;
    else
        return 0;
}
int pop2(SqStack &S,char k)
{
    k=*--S.top;
    if(k==']')
        return 1;
    else
        return 0;
}
int pop3(SqStack &S,char k)
{
    k=*--S.top;
    if(k=='}')
        return 1;
    else
        return 0;
}
int StackEmpty(SqStack &S)
{
    if(S.top==S.base)
        return 1;
    else
        return 0;
}


int MergeList(SqStack S,char a[],int j)
{
    char e,k;
    for(int i=0;i<j;++i)
    {
        e=a[i];
        switch(e)
        {
        case '(':
            push(S,e);
            break;
        case '[':
            push(S,e);
            break;
        case '{':
            push(S,e);
            break;
        case ')':
            if(StackEmpty(S))
                return 0;
            else
                if(!pop1(S,k))
                    return 0;
                else
                    break;
        case ']':
            if(StackEmpty(S))
                return 0;
            else
                if(!pop2(S,k))
                    return 0;
                else
                    break;
        case '}':
            if(StackEmpty(S))
                return 0;
            else
                if(!pop3(S,k))
                    return 0;
                else
                    break;
        }
        if(StackEmpty(S))
            return 1;
        else
            return 0;
    }

char InitStack(SqStack &S)
{
    S.base=(char *)malloc(STACK_INIT_SIZE*sizeof(char));
    if(!S.base)
        exit(OVERFLOW);
    S.top=S.base;
    S.stacksize=STACK_INIT_SIZE;
    return Ok;
}

void main()
{
    int m,flag;
    char a[100]={0};
    SqStack S;
    fin>>m;
   
    for(int i=0;i<m;++i)
        fin>>a[i];
    InitStack(S)
    flag=MergeList(S,a[],m);

    if(flag)
        fout<<"yes!";
    else
        fout<,"no!";
    fin.close();
    fout.close();
}
修改了请具体说明原因
3q
2013-10-18 06:53
liuchaowangl
Rank: 2
等 级:论坛游民
帖 子:6
专家分:23
注 册:2013-10-16
收藏
得分:7 
#include<iostream.h>
#include<fstream.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#define STACK_INIT_SIZE 100
#define OK '1'//1是控制符


struct SqStack
{
    char *base;
    char *top;
    int  stacksize;
};

void push(SqStack &S,char e)
{
    *S.top++=e;
}
int pop1(SqStack &S,char k)
{
    k=*--S.top;
    if(k==')')
        return 1;
    else
        return 0;
}
int pop2(SqStack &S,char k)
{
    k=*--S.top;
    if(k==']')
        return 1;
    else
        return 0;
}
int pop3(SqStack &S,char k)
{
    k=*--S.top;
    if(k=='}')
        return 1;
    else
        return 0;
}
int StackEmpty(SqStack &S)
{
    if(S.top==S.base)
        return 1;
    else
        return 0;
}


int MergeList(SqStack S,char *a,int j)
{
    char e,k;
    for(int i=0;i<j;++i)
    {
        e=a[i];
        switch(e)
        {
        case '(':
            push(S,e);
            break;
        case '[':
            push(S,e);
            break;
        case '{':
            push(S,e);
            break;
        case ')':
            if(StackEmpty(S))
                return 0;
            else
                if(!pop1(S,k))
                    return 0;
                else
                    break;
        case ']':
            if(StackEmpty(S))
                return 0;
            else
                if(!pop2(S,k))
                    return 0;
                else
                    break;
        case '}':
            if(StackEmpty(S))
                return 0;
            else
                if(!pop3(S,k))
                    return 0;
                else
                    break;
        }
        if(StackEmpty(S))
            return 1;
        else
            return 0;
    }
}//少}

char InitStack(SqStack &S)
{
    S.base=(char *)malloc(STACK_INIT_SIZE*sizeof(char));
    if(!S.base)
        exit(OVERFLOW);
    S.top=S.base;
    S.stacksize=STACK_INIT_SIZE;
    return OK;
}

int main()
{
    ifstream fin("input.txt",ios::in);   
    ofstream fout("output.txt",ios::out);
    int m,flag;
    char a[100]={0};
    SqStack S;
    fin>>m;
   
    for(int i=0;i<m;++i)
        fin>>a[i];
    InitStack(S);
    flag=MergeList(S,a,m);

    if(flag)
        fout<<"yes!";
    else
        fout<<"no!";//语法
    fin.close();
    fout.close();
    return 0;
}
2013-10-19 13:14
快速回复:主函数出现local function definitions are illegal怎么办
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018110 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved