变量名错误;变量还没有定义,就直接使用;变量的输入与使用顺序不当;数据输入时,数据的类型不匹配

一,变量名错误
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()》

猜你喜欢

转载自blog.csdn.net/weixin_46060711/article/details/121896605