标题:::main' must return 'int' 这个咋解决,求出大神
只看楼主
过客、帅
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-4-9
结帖率:0
已结贴  问题点数:20 回复次数:4 
::main' must return 'int' 这个咋解决,求出大神
#include "stdio.h"
#include "stdlib.h"
 
typedef struct node{
    char ch;
    node *next;
}Linkstack;

Linkstack *Setstack(){
    Linkstack *S;
    S=(Linkstack*)malloc(sizeof(Linkstack));
    S->next=NULL;
    return S;
}

Linkstack *Pushstack(Linkstack *S,char c){
    Linkstack *p;
    p=(Linkstack*)malloc(sizeof(Linkstack));
    p->ch=c;
    p->next=S->next;
    S->next=p;
    return S;
}

Linkstack *Popstack(Linkstack *S){
    Linkstack *p;
    p=S->next;
    S->next=p->next;
    free(p);
    return S;
}

char Gettop(Linkstack *S){
    if(S->next!=NULL)
    return S->next->ch;
    else
    return ' ';
}

int Judgepair(){
    Linkstack *p;
    char c;
    int sign=1;
    p=Setstack();
    printf("请输入算术表达式,并以'#'结束\n");
    c=getchar();
    while(c!='#'){
        switch(c){
            case'(':
                p=Pushstack(p,c);
                break;
            case')':
                if(Gettop(p)=='(')
                p=Popstack(p);
                else
                sign=0;
                break;
        }
        if(sign==0)
        break;
        else
        c=getchar();
    }
    if(p->next!=NULL)
    sign=0;
    return sign;
}

void Judgeout(int a){
    if(a==1)
    printf("算术表达式小括号配对正确!\n");
    if(a==0)
    printf("算术表达式小括号配对错误!\n");
}

void main(){
    Judgeout(Judgepair());
}

76    11    C:\Users\VULCAN\Desktop\1.cpp    [Error] '::main' must return 'int'
搜索更多相关主题的帖子: main return int char next 
2019-04-09 22:26
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:5 
void main() ---> int main()
这是你的编译器要求的
2019-04-09 22:50
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:5 
[Error] '::main' must return 'int'
字面意思不就是 [错误] main函数必须返回int类型;
好明显的说。。。
报错可以尝试翻译一下错误信息,可以解决很多问题...

saber,别哭.
2019-04-10 07:20
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
得分:5 
int main()
{
return 0;
}

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2019-04-12 15:57
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
至始至终,C标准都规定 main 函数的返回类型必须是 int。
C语言从诞生以来就没允许过 void main,某些烂编译器允许void main是不符合C标准的恶心行为

C++ 规定两种声明,即 int main(void) 和 int main(int argc, char* argv[]),或这两种声明的等价形式,或实现定义的其它形式。
其它形式,比如 int main( int argc, char* argv[], char* envp[] ) 当然是可以的(虽然换个编译器就不承认了)
但这些扩展形式肯定不可以与标准规定的两个声明矛盾,即不可以 void main(……),不可以 int main( float,…… )
严格来说,int main() 也是不可以的,因为C语言规定函数参数列表为空时,表示可以接受任何多任意类型的参数(这一点和C++不一样,C++中void foo()等价于void foo(void),而C中等价于void foo(...) )。
之所以说“严格来说”,是因为C语言不支持“重载”功能,因此link导出函数名不带有参数列表,所以你写成int main()它也不知道。

自上世纪1999年,C语言规定main函数中退出时 return 0; 可以省略。比如
int main( void )
{
    if( …… )
        return 1;
}
等同于
int main( void )
{
    if( …… )
        return 1;
    return 0;
}
2019-04-12 17:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494045-1-1.html




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

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