c++ error C2143: syntax error : missing ')' before ';'请您多帮忙

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

typedef int status;

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;

typedef struct{
int *base;
int *top;
int stacksize;
}sqstack;

status initstack(sqstack &s)
{
s.base=(int *)malloc( STACK_INIT_SIZE * sizeof(int));//这行报错
if(!s.base){
puts("Can't allocate memory");
exit(1);
}
s.top=s.base;
s.stacksize=STACK_INIT_SIZE;
return OK;
}

status push(sqstack &s,int e)
{
if(s.top - s.base >= s.stacksize){
s.base=(int *)realloc(s.base,(s.stacksize+STACKINCREMENT)*sizeof(int));//这行报错
if(!s.base){
puts("Can't allocate memory");
exit(1);
}
s.top=s.base+s.stacksize;
s.stacksize+=STACKINCREMENT;
}
*s.top++=e;
return OK;
}

status gettop(sqstack s,int &e)
{
if(s.top==s.base)
return ERROR;
e=*(s.top-1);
return OK;
}

status pop(sqstack &s,int &e)
{
if(s.top==s.base)
return ERROR;
e=*--s.top;
return OK;
}

status stackempty(sqstack &s)
{
if(s.top==s.base)
return TRUE;
return FALSE;
}

void conversion(sqstack &s)
{
int n;
int e;
puts("Enter the number:");
initstack(s);
scanf("%d",&n);
while(n){
e=n%8;
push(s,e);
n=n/8;
}
while(!stackempty(s)){
pop(s,e);
printf("%d",e);
}
}

int main(int argc, char* argv[])
{
sqstack s;
conversion(s);
printf("Hello world\n");
return (0);
}

谢谢

第1个回答  推荐于2016-03-06
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;

改为

#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10

(即去掉结尾的分号)本回答被提问者采纳
第2个回答  2009-03-15
26|error: expected primary-expression before "int"
的确,如果不去掉分号
s.base=(int *)malloc( STACK_INIT_SIZE * sizeof(int));//这行报错
就被替换为:
s.base=(int *)malloc( 100; * sizeof(int));//这行报错
提前加了一个语句结束符号;
第3个回答  2009-03-15
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;

//这两行后面的分号去掉,宏定义没这么用的

...error C2143: syntax error : missing ')' before ';'请您多帮忙
define STACK_INIT_SIZE 100;define STACKINCREMENT 10;改为 define STACK_INIT_SIZE 100 define STACKINCREMENT 10 (即去掉结尾的分号)

error C2143: syntax error : missing ')' before ';'
楼上正解,不过这段代码还有一个错误:printf("输入行号,列号和值:");scanf("%d%d%d",&(p->i),&(p->j),&(p->v));if((L->rhead[p->i]==NULL )||( L->rhead[p->i]->j>p->j)){ p->rptr=L->rhead[p->i];L->rhead[p->i]=p;} else{ u=L->rhead[p->i];...

c语言 error C2143: syntax error : missing '{' befor?
error C2143: syntax error:missing '{' before '*'这句话的意思是说:C句法规则错误第2143号:在'*'的前面少了'{'。具体要检查在红色标号处(或稍前位置)处有否大括号不匹配的情况。

...C2143: syntax error : missing ')' before ';'是什么错误,找遍了却...
在C语言中,这是一个语法错误。在运行程序时发现了一个问题,总是提示一个错误:error C2143: syntax error : missing before type。解决方法如下:把所有变量的声明放在可执行代码之前。出现此问题的原因在于:将文件保存成了 .c 格式。如果是cpp格式就能正常编译。改成.cpp就可以正常运行,和你变量...

error C2143: syntax error : missing ';' before '<<'
error C2143: -- 错误号 C2143。syntax error : missing ';' before '<<' -- 句法错误,在 << 字符前面,漏了分号。检查 << 前,是否有变量名拼写错或其它错。<< 之前怎会要加分号呢?肯定是别的错引起的。

c++语法错误 error C2143: syntax error : missing ';' before '&&'
空语句”。空语句的格式就是一个分号。所以编译程序提示你:语法错误:在‘&&’之前缺失分号。( syntax error : missing ';' before '&&' )看来,是编译程序的分析结果,误判了你的错误原因。当然,编译程序一般是不能保证正确分析你的错误原因的,只要提醒你“有错误”就不错了。

error C2143: syntax error : missing ';' before ')'
是分号不是逗号,好好看看你的程序。你在编译器上调试会给你提示错误的行号滴,自己要养成调试的习惯。看出错提示 error C2143: syntax error : missing ';' before ')' 翻译为中文就是:语法错误:在右括号)前丢失了个分号; 你的逗号改为分号就可以了 for(i=0;i<9-j;i++)...

C++ 编译错误error C2143: syntax error : missing ';' before '.'
Deck 的定义在哪呢?缺失类定义或是类定义有错,也可能导致编译器定位错误不准。

C++ error C2143: syntax error : missing ',' before '&'
没有错误啦,你的const 起修饰作用。。。自己看看 pragma once include<vector> include<string> using namespace std;template<class T> class CTool { public:CTool(void);~CTool(void);void ReadDataFromTxt(const CString=1 & strName, int nType, vector<double>& dArrStrain, vector<double...

c语言问题error C2143: syntax error : missing ';' before '}'
第一个 printf("明文为:%s\/n",str2)后面要加上;号你没写 第二个 for(n=2,n<s;n++)n=2后面应该是;号而不是,号这时第1个错误 { int shu[200]={0}; int s,n,i=0,k; for (s=1;s<=200;s++){ for(n=2,n

相似回答
大家正在搜