c++小程序,为什么老说我在常量前面少分号和括号呢?
#include<iostream>#include<cmath>usingnamespacestd;#defineP2#defineQ5intfindlambda(in...
#include<iostream>
#include<cmath>
using namespace std;
#define P 2
#define Q 5
int findlambda(int Q,float lambda[]);
int main()
{
int besti=0;
int badi=0;
float matrix[2][5]={2,3,1,1,0,3,3,2,0,1};
int ji[5]={0,0,0,1,1};
float c[3]={-40,-45,-24};
float b[2]={100,120};
float lambda[5]={-40,-45,-24,0,0};
badi=findlambda(Q,lambda);
cout<<findlambda;
}
//-----------------------------------------------------------------------
int findlambda(int QQ,float lambda[])
{
int badi=-1;
float M=999999;
for(int i=0;i<QQ;i++)
{
if(lambda[i]<0)
{
if(lambda[i]<M) {
M=lambda[i];
badi=i;}
}
}
return badi;
}
//------------------------------------------------------------------------
就这个小程序,编译时候老说
C:\Documents and Settings\abc\Cpp1.cpp(6) : error C2143: syntax error : missing ')' before 'constant'
C:\Documents and Settings\abc\Cpp1.cpp(6) : error C2143: syntax error : missing ';' before 'constant'
C:\Documents and Settings\abc\Cpp1.cpp(6) : fatal error C1004: unexpected end of file found
他所说的congstant常量指的是什么呢?我看了好半天也没找到哪里少括号和分号啊?真伤心,要是答的好我再加一百分,因为很着急,拜托了 展开
#include<cmath>
using namespace std;
#define P 2
#define Q 5
int findlambda(int Q,float lambda[]);
int main()
{
int besti=0;
int badi=0;
float matrix[2][5]={2,3,1,1,0,3,3,2,0,1};
int ji[5]={0,0,0,1,1};
float c[3]={-40,-45,-24};
float b[2]={100,120};
float lambda[5]={-40,-45,-24,0,0};
badi=findlambda(Q,lambda);
cout<<findlambda;
}
//-----------------------------------------------------------------------
int findlambda(int QQ,float lambda[])
{
int badi=-1;
float M=999999;
for(int i=0;i<QQ;i++)
{
if(lambda[i]<0)
{
if(lambda[i]<M) {
M=lambda[i];
badi=i;}
}
}
return badi;
}
//------------------------------------------------------------------------
就这个小程序,编译时候老说
C:\Documents and Settings\abc\Cpp1.cpp(6) : error C2143: syntax error : missing ')' before 'constant'
C:\Documents and Settings\abc\Cpp1.cpp(6) : error C2143: syntax error : missing ';' before 'constant'
C:\Documents and Settings\abc\Cpp1.cpp(6) : fatal error C1004: unexpected end of file found
他所说的congstant常量指的是什么呢?我看了好半天也没找到哪里少括号和分号啊?真伤心,要是答的好我再加一百分,因为很着急,拜托了 展开
展开全部
参考:
你用#define Q 5宏定义语句后,Q与5是同一个值5,后面的程序就会把Q当做5,在你定义在函数里定义形参int Q时实际上与定义int 5 一样的,而在定义变量s时是不能用数字开头,更不能只用一个整数代替变量,所以会报错,用#define Q 5; 与const int Q=5;是等价的
修改:
在声明处修改:int findlambda(int i,float lambda[]); 或int findlambda(int ,float lambda[])
顺便说一句:在你的函数定义时用int QQ因为QQ作为一个整体,在程序开头没有语句#define QQ 5所以用int QQ 是合法的。
建议:你用了badi来存储函数返回值,在输出是就可以直接用cout<<badi;
你用#define Q 5宏定义语句后,Q与5是同一个值5,后面的程序就会把Q当做5,在你定义在函数里定义形参int Q时实际上与定义int 5 一样的,而在定义变量s时是不能用数字开头,更不能只用一个整数代替变量,所以会报错,用#define Q 5; 与const int Q=5;是等价的
修改:
在声明处修改:int findlambda(int i,float lambda[]); 或int findlambda(int ,float lambda[])
顺便说一句:在你的函数定义时用int QQ因为QQ作为一个整体,在程序开头没有语句#define QQ 5所以用int QQ 是合法的。
建议:你用了badi来存储函数返回值,在输出是就可以直接用cout<<badi;
展开全部
int findlambda(int Q,float lambda[]);
改为
int findlambda(int QQ,float lambda[]);
定义常量最好用const,保存不会错啦,上面的Q被换成了5了(#define Q 5)
改为
int findlambda(int QQ,float lambda[]);
定义常量最好用const,保存不会错啦,上面的Q被换成了5了(#define Q 5)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c++定义常量尽量用const,因为define是预编译,也就是编译时不检查对错,所以int findlambda(int Q,float lambda[]); 就错了,会直接代换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define Q 5
int findlambda(int Q,float lambda[]);
是不是这个地方啊?你把Q定义为5,何必要放在函数里面呢?每次调用函数就把Q简单的换成了5,5就是一个常量。你试着改写一下这个函数,看能不能消除这个问题,我没有环境,不好帮你调试
int findlambda(int Q,float lambda[]);
是不是这个地方啊?你把Q定义为5,何必要放在函数里面呢?每次调用函数就把Q简单的换成了5,5就是一个常量。你试着改写一下这个函数,看能不能消除这个问题,我没有环境,不好帮你调试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define Q 5
int findlambda(int Q,float lambda[]);
怎么能这样写啊,int 5是不对的
int findlambda(int Q,float lambda[]);
怎么能这样写啊,int 5是不对的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把
#define P 2
#define Q 5
改成
const int P=2;
const int Q=5; 就可以了,至于原因我也不很清楚
#define P 2
#define Q 5
改成
const int P=2;
const int Q=5; 就可以了,至于原因我也不很清楚
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询