一,变量名错误
1)变量名不能使用关键字
int char; //编译失败
2)变量名不能和函数名同名
int system; //会导致后面不能使用system函数
注意:在C语言中,变量名不能与函数名冲突;在C++中,函数重载,可以存在某种情况的冲突!
二,变量还没有定义,就直接使用
age = 20;//变量一定要先定义,再使用。
变量一定要先定义,再使用!
三,变量的输入与使用顺序不当
#include<iostream>
#include<Windows.h>
using namespace std;
int main(void){
int age;
int num;
num = age * 360;//编译器提示age没有初始化,因该先输入age,再计算
cout << "请输入您的年龄: ";
cin >> age;//应该在计算这条语句之前
cout << "这是您在地球的" << num <<"天" << endl;
system("pause");
return 0;
}
四,数据输入时,数据的类型不匹配
#include<iostream>
#include<Windows.h>
using namespace std;
int main(void){
int age;
int num;
cout << "请输入您的年龄: ";
cin >> age;
num = age * 360;
cout << "这是您在地球的" << num <<"天" << endl;
system("pause");
return 0;
}
输入为as,输出为 :
对age进行初始化:
#include<iostream>
#include<Windows.h>
using namespace std;
int main(void){
int age = 2;
int num = 0;
cout << "请输入您的年龄: ";
cin >> age;
num = age * 360;
cout << "这是您在地球的" << num <<"天" << endl;
system("pause");
return 0;
}
这时,输入为as,输出为 :
初始化age之后,开始编译,在控制台输入as,age是int类型的变量,输入的却是字符型,输入失败,变量age的值还是原来的2
初始化之后,可以分析出输入失败原因。若是不初始化,就会出现输出结果为-288这样奇怪,且让人一头雾水的情况!
注意:变量如果不做初始化,它的值是不确定的。
因此,要良好的编程习惯:
变量在定义时,进行初始化,
int age = 0;
但是这并没有解决输入失败后的问题,请参考我的另一篇博客:
《输入数据时,前面的数据输入错误,导致后面的数据都不能输入。及解决这个问题的办法:cin.clear()和cin.sync()》