```c++
#include
int game = 0;
int dis = 0;
int input = 0;
int main();
int ms();
int pig();
input;++
int main(){
if(input=1){
cout << '你是第一次玩吧,那就顺着游玩吧。';
ms();
}else{
char http[40];
cout << '你要玩第几个? 目前有猜拳游戏请扣1和猜数字请扣2';
cin >> http;
switch(http)
{
case 1:{
ms();
}break;
case 2; {
pig();
}
}
}
return 0;
}
int ms() {
}
int pig() {
int gamt = 0;
char gamr[40];
int game = 0;
cout << '我会随机想一个数字,你来猜!'
game++;
if (gamt = 3, gamt < 3) {
cin << '机会用完了';
}
else {
cin >> gamr;
if (game > garm) {
gamt++;
cin << '太小了';
}
else if (game = gamt) {
cin << '答对了!';
}
else {
cin << '太大了';
}
}
}
他提示我字符常量中字符过多,这要怎么解决?有人知道吗?
当时我尝试进行缩短字符,但还是一样报错
if(input=1)
改为
if(input==1)
==========
'太小了'
单引号里面只能是一个字符,你这里是字符串啊,要用双引号, "太小了“,其它字符串一样的问题
C++不是Python
=========
switch(http) ---- 不知道你想干啥。http定义成了字符数组,字符数组是不能switch的。而且case又是1,2。字符数组怎么等于1和2呢?
字符串常量(字面量)问题
单引号('')是用来表示一个(ASCII)字符的,很显然不能用来修饰字符串。把所有字符串如'你是第一次玩吧,那就顺着游玩吧。',都修改为用双引号("")来修饰。
变量命名问题(非致命)
gamt,gamr,game 没觉得它们太像了吗?以至于肉眼一眼很难区分。建议用全英文,或者其他容易区分的单词表示。
if 判断条件混乱
如if (gamt = 3, gamt < 3)
,哪有人在if语句里面用逗号语句的?一行一条语句,一条语句尽量只干一件事。你这要是在正常一点公司,早就把你干掉了。
else if (game = gamt)
,没觉得这条语句是错的?是赋值,还是判断是否相等?类似地,if(input=1)
条件永远为true。
// C风格判断字符串是否相等
char http[40];
if (strcmp(http, "1") == 0) {
...
}
// C++风格判断字符串是否相等
std::string http;
if (http == "1") {
...
}
全局变量使用错误input;++
,全局变量要在函数内进行操作,不要在函数外部作用域进行赋值操作。另外,你这里input后面加个";"是几个意思?
int函数要有返回值int ms()
和int pig()
函数返回类型都是int,但是为什么没返回值?