c++小程序,为什么老说我在常量前面少分号和括号呢?

2024-12-26 06:53:58
推荐回答(6个)
回答1:

参考:
你用#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<

回答2:

int findlambda(int Q,float lambda[]);
改为
int findlambda(int QQ,float lambda[]);

定义常量最好用const,保存不会错啦,上面的Q被换成了5了(#define Q 5)

回答3:

c++定义常量尽量用const,因为define是预编译,也就是编译时不检查对错,所以int findlambda(int Q,float lambda[]); 就错了,会直接代换

回答4:

#define Q 5
int findlambda(int Q,float lambda[]);
是不是这个地方啊?你把Q定义为5,何必要放在函数里面呢?每次调用函数就把Q简单的换成了5,5就是一个常量。你试着改写一下这个函数,看能不能消除这个问题,我没有环境,不好帮你调试

回答5:

#define Q 5
int findlambda(int Q,float lambda[]);
怎么能这样写啊,int 5是不对的

回答6:


#define P 2
#define Q 5
改成
const int P=2;
const int Q=5; 就可以了,至于原因我也不很清楚