一、什么是整型变量?
整型就是用来存整数的变量(盒子)。
生活中的整数:
年龄:15岁
班级人数:45人
考试分数:98分
温度:-5度
这些没有小数点的数,都用整型来存。
二、int怎么用?
1. 基本用法
#include<bits/stdc++.h>using namespace std;intmain(){ int a = 15; // 定义变量a,里面放15 int b = 98; // 定义变量b,把98赋值给b cout << a << " " << b; return 0;}
这里需要注意的是 int 变量名 = 整数; 这里的 = 是赋值的作用,相当于把 = 右边的整数,赋值给 = 左边的变量;
补充一下关于变量的命名规则 :数字、或字母、或下划线_ 组成,数字不能开头。
#include<bits/stdc++.h>using namespace std;intmain(){ int num1 = 10; //可以 int _num = 20; //可以用下划线开头 int 2num = 30; //不能数字开头 int num-1 = 40; //不能有减号 int num 1 = 50; //不能有空格 int num = 60; //最好:见名知意 return 0;}
当然也可以写到同一行中来实现赋值功能:
#include<bits/stdc++.h>using namespace std;intmain(){ int a = 1, b = 2, c = 100;//定义三个变量,分别进行赋值 cout << a << " " << b << " " << c; return 0;}
但是这样的操作不太灵活,一般我们需要用到的是从键盘输入数字,给变量赋值,我们就需要学习C++的基础输入 cin >> 变量;
#include<bits/stdc++.h>using namespace std;intmain(){ int a;//定义一个整型变量a cin >> a;//输入一个整数 给a变量 cout << a;//输出a 变量中的值 return 0;}
如果是有多个数字进行输入给多个变量进行赋值,也可以使用cin一直输入;
#include<bits/stdc++.h>using namespace std;intmain(){ int a, b, c;//定义三个整型变量 cin >> a >> b >> c;//分别输入三个数字 给a b c cout << a << " " << b << " " << c;//输出变量中对应的值 return 0;}
学习了简单的赋值操作之后,我们来思考下面这样一个问题,如果我对一个变量多次进行赋值操作,最终这个变量的值是什么呢?
#include<bits/stdc++.h>using namespace std;intmain(){ int a = 3; cin >> a;//假如输入一个5 a = 6; cout << a;//a是几呢 ,答案a是6,只保留 return 0;}
我们来分析一下上面的程序,一开始a里面存放的是整数3,然后输入赋值,如果输入的是整数5,整数5就会覆盖原来的整数3,a里面就变成了5,接着又对a进行赋值操作,设置为整数6,所以最终a里面值是整数6。三、int的运算
1. 基本运算
#include<bits/stdc++.h>using namespace std;intmain(){ int a = 10, b = 3; int sum = a + b; // 加法:13 int d = a - b; // 减法:7 int p = a * b; // 乘法:30 int q = a / b; // 除法:3(注意! 整除,没有小数) int r = a % b; // 取余:1 return 0;}
2. 最重要的知识点:整数除法
#include<bits/stdc++.h>using namespace std;intmain(){ int a = 10, b = 3; cout << a / b << endl;// 结果是 3,不是 3.333 int x = 5, y = 2; cout << x / y; // 输出 2, 不是2.5 return 0;}
规律:两个整数相除,结果还是整数(小数部分直接扔掉,不是四舍五入)
想要小数结果?后面学 double
3. 取余运算(%)(信奥必考!)
#include<bits/stdc++.h>using namespace std;//intmain(){ cout << 10 % 3 << endl;// 10除以3,余1 cout << 15 % 5 << endl;// 15除以5,整除,余数为0 cout << 7 % 10 << endl;// 7除以10,余7 return 0;}
四、int能存多大的数?
1. int的范围
记法:约 -21亿 到 21亿
2. 致命陷阱:溢出
#include<bits/stdc++.h>using namespace std;intmain(){ int a = 2000000000;// 20亿 int b = 2000000000;// 20亿 int c = a + b; // 40亿,超过21亿了! cout << c; // 输出负数或错误值(溢出) return 0;}
溢出就像杯子装不下水:数据超过int能存的范围,就会出错!
五、解决溢出:用long long
当数字可能超过21亿时,用 long long:
#include<bits/stdc++.h>using namespace std;intmain(){ int a = 100000; int b = 100000; // int c = a * b; 溢出! long long c = (long long)a * b;// 正确! cout << c; // 输出:10000000000 return 0;}
什么时候用long long:
看到10万×10万这种
题目说数据范围超过10^9
不确定会不会超21亿
六、long long到底多大?
1. 内存大小
3、基础使用
#include<bits/stdc++.h>using namespace std;intmain(){ long long a = 10000000000; // 100亿 long long b = 1234567890123456;// 更大 long long c, d; // 一次定义多个 long long sum = 0; long long total = 1000000000000LL;//LL相当于告诉是long long类型 return 0;}
为什么加LL?
知识小结
int不够long long来凑,看到大数加LL,乘法记得强转走!
记住:
洛谷练习推荐:
B2003 输出第二个整数
#include<bits/stdc++.h>using namespace std;intmain(){ int a, b, c;//定义三个整型变量 cin >> a >> b >> c;//分别输入三个数字 cout << b;//输出第二个数字 return 0;}
B2007 A + B 问题
#include<bits/stdc++.h>using namespace std;intmain(){ int a, b;//定义两个整数 cin >> a >> b;//输入两个整数 cout << a + b;//输出两个整数的和 return 0;}
B2008 计算 (a+b)×c 的值
#include<bits/stdc++.h>using namespace std;intmain(){ int a, b, c;//定义三个变量 cin >> a >> b >> c;//分别输入三个数字 cout << (a + b) * c;//求出结果 return 0;}
B2028 反向输出一个三位数
#include<bits/stdc++.h>using namespace std;intmain(){ int n; cin >> n; int a = n % 10;//个位 int b = n / 10 % 10;//十位 int c = n / 100;//百位 cout << a << b << c;//输出个位 十位 百位 return 0;}