1、变量:
在程序运行期间其值可以改变的量称为变量。变量是代码中最重要的元素。每个变量应该有一个名字,同一个程序内的变量名不重复。
请注意区分变量名和变量值这两个不同的概念(相当于张三的名字和他本人是不同的概念一样)。
几乎所有程序都离不开变量。做饭之前要准备食材,写字画画之前要准备笔墨,刺绣之前要准备针线,我们写程序之前当然也要准备好相应的“素材”,这就是变量。
2、使用变量
在 C++ 语言中,要求对所有用到的变量作定义,也就是必须“先声明,后使用”。定义变量的一般形式是:变量类型 变量名表列。
例:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n; //声明一个变量,名字叫做n,n是一个整型变量
}
变量一经声明就不能改变了。下面这段程序,编译就会报错。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n; //声明一个变量,名字叫做n,n是一个整型变量
long long n; //再次声明
}
哪怕再次声明相同类型的变量,也会报错。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n; //声明一个变量,名字叫做n,n是一个整型变量
int n; //再次声明
}
可以连续声明多个变量。
int main()
{
int n; //声明一个变量,名字叫做n,n是一个整型变量
int m; //声明一个变量,名字叫做m,m是一个整型变量
}
相同数据类型的变量,可以一起声明,中间用逗号隔开。
int main()
{
int m, n; //声明2个整型变量,名字分别叫做m,n
}
3、变量类型
在编程时,需要用到各种变量来存储各种信息。不同类型的信息需要用不同类型的变量来存储。
变量名命名规则
(1)只能由字母( A-Z , a-z )、数字(0-9)和下划线(_)组成;
(2)第1个字符必须是字母或下画线,不能以数字开头;
(3)不能用C++中的关键字来做变量名以免冲突。
注意大小写
在 C++ 中,大写字母和小写字母被认为是两个不同的字符,因此sum和Sum被认为是不同的变量名。
1、在 C++ 中下面哪个不是合法的变量名( )。
A、sum
B、Student_name
C、BASIC
D、M.D.Joh
2、下面哪个是合法的变量名( )。
A、for
B、#3345
C、li_ling
D、Zhang-ming
赋值符号“=”
1、直接赋值
赋值需要先声明变量,再将值赋给变量。
int a, b;
a = 3;
b = 4;
不声明则无法通过编译。
a = 3;
b = 4;
int a, b;
可以在声明的同时赋值。
int a = 3, b = 4;
2、从其他变量赋值
故名思意,就是将其他变量的值付给当前变量。
int a, b = 4;
a = b;
赋值还可以这样:
int a, b = 4;
a = b + 3; //a = 7
也可以这样:
int b = 4, a = -b; //a = -4
但是下面这样会编译错误,因为在对 a 赋值前, b 没有声明。
int a = -b, b = 4; //这样会错
3、从自己赋值
变量还可以通过自己以前的值,来进行赋值。
int a = 4;
a = a + 1; //a = 5
a = a * 2; //a 从5变为10
上面的程序还可以这样写。
int a = 4;
a += 1; //a = 5
a *= 2; //a 从5变为10
变量还可以通过 ++ 和 −− 进行赋值,其作用等同于 +=1 以及 −=1 。
int a = 4;
a++; //a = 5
a--; //a = 4
++a; //a = 5
--a; //a = 4
上节课我们学习了输出语句cout<<,与 cout<< 相对应的输入语句是 cin>> 。
形象化记忆:
输入语句用法如下:
int a;
cin >> a; //键盘读入1个数字并赋值给a
还可以同时处理多个输入
#include<bits/stdc++.h> // 头文件
using namespace std; // 命名空间
int main() // 定义主函数
{
int a, b, c;
cin >> a >> b >> c;
}
结合之前的输出,我们来更多的程序
#include<bits/stdc++.h> // 头文件
using namespace std; // 命名空间
int main() // 定义主函数
{
int n = 5, m;
cin >> m;
cout << n + m;
return 0;
}
假如我们通过键盘输入 6 ,则最终输出的结果为:11
因为 m=6,n=5 ,所以会输出 6+5 的计算结果 11 。
cin常见问题
在使用 cin 同时处理多个变量的时候,正确的写法如下:
#include<bits/stdc++.h> // 头文件
using namespace std; // 命名空间
int main() // 定义主函数
{
int n, m;
cin >> n >> m;
return 0;
}
而下面写法是错误的:
#include<bits/stdc++.h> // 头文件
using namespace std; // 命名空间
int main() // 定义主函数
{
int n, m;
cin >> n, m;
return 0;
}
输出n+5的值 查看测评数据信息
输入一个数n,请你输出n+5的值。
输入格式
输入一个数n。
输出格式
输出一个数,表示n+5的值。
输入/输出例子1
输入:
5
输出:
10
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
cout<<n+5;
return 0;
}
求n的平方 查看测评数据信息
已知一个正整数n,请你求出n的平方
输入格式
输入一个数n。
输出格式
输出n的平方。
输入/输出例子1
输入:
4
输出:
16
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
cout<<n*n;
return 0;
}
身高 查看测评数据信息
输入一个整数n,表示身高,程序会输出一句英文,"My height is ncm.",其中n代指输入的数字。
输入格式
输入一个 n
输出格式
输出"My height is ncm."
输入/输出例子1
输入:
175
输出:
My height is 175cm.
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
cout<<"My height is ";
cout<<n;
cout<<"cm.";
return 0;
}
A+B的和 查看测评数据信息
已知两个非负整数A,B,请你求出A+B的值并输出这个加法算式。
数据范围
对于100%的数据,0≤A,B≤10^9;
输入格式
输入两个整数A,B;
输出格式
输出一个加法算式,形如“A+B=计算结果”。字符间不包含空格。
输入/输出例子1
输入:
5 6
输出:
5+6=11
#include<bits/stdc++.h>
using namespace std;
int main(){
int A,B;
cin>>A>>B;
cout<<A<<"+"<<B<<"="<<A+B;
return 0;
}
变量值交换 查看测评数据信息
定义两个变量a和b,输入a、b的值,将变量a和b的值进行交换后输出a和b的值中间用空格隔开。
输入格式
输入两个整数,表示a和b的值,不超过10000。
输出格式
输出两个数,表示交换后的a、b的值。
输入/输出例子1
输入:
12 35
输出:
35 12
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<b<<" "<<a;
return 0;
}
数塔 查看测评数据信息
输入一个整数,输出由这个整数构成的四层数塔(数塔同一层两数字用空格隔开)。
输入格式
输入一个整数,不超过10000。
输出格式
输出由这个整数构成的四层数塔。
输入/输出例子1
输入:
20
输出:
20
20 20
20 20 20
20 20 20 20
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
cin>>a;
cout<<a<<endl;
cout<<a<<" "<<a<<endl;
cout<<a<<" "<<a<<" "<<a<<endl;
cout<<a<<" "<<a<<" "<<a<<" "<<a<<endl;
return 0;
}
矩形 查看测评数据信息
已知有一个矩形,它的长和宽分别为a,b,请你求出并输出这个矩形的周长和面积。
数据范围
对于20%的数据,1≤a,b≤20; 对于100%的数据,1≤a,b≤10000;
输入格式
输入两个数a,b,分别表示矩形的长和宽。
输出格式
输出两个数,分别表示矩形的周长和面积。
输入/输出例子1
输入:
4 2
输出:
12 8
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<(a+b)*2<<" "<<a*b;
return 0;
}
小玉家的费用 查看测评数据信息
夏天到了,各家各户的用水量电量都增加了许多,相应的水电费也交的更多了。今天收到了一份缴费通知单,电费每度为d元,水费每吨s元。请编写一个程序输入小玉家本月的用水量、用电量、s、d,计算出小玉家应交的水电费应该是多少?
输入格式
输入四个整数,表示本月用水(吨,不超过10000)、计和用电总计(度,不超过10000)、s、d。(0<s,d<=10)
输出格式
输出一个数(本月水电费总额)。
输入/输出例子1
输入:
20 30 3 2
输出:
120
#include<bits/stdc++.h>
using namespace std;
int main(){
int s,d,c,a;
cin>>s>>d>>c>>a;
cout<<s*c+d*a;
return 0;
}
米老鼠偷糖果 查看测评数据信息
米老鼠发现了厨房放了n颗糖果,它一次可以背走a颗,请问米老鼠背了x次之后还剩多少颗?(假设x次之后一定有糖果剩下)
输入格式
三个整数n、a、x分别代表总共有n颗糖果,米老鼠一次背走a颗糖果,总共背了x次。
输出格式
一个整数,代表剩余的糖果数量。
输入/输出例子1
输入:
12 2 3
输出:
6
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a,x;
cin>>n>>a>>x;
cout<<n-a*x;
return 0;
}
请假时间计算 查看测评数据信息
假设小明的妈妈向公司请了n天的假,那么请问小明的妈妈总共请了多少小时的假,多少分钟的假?(提示:1天有24小时,1小时有60分钟)
输入格式
一个整数n,代表小明妈妈请假的天数。
输出格式
两个整数,每行1个,第1行的整数代表小明妈妈请假的小时数,第2行的整数代表小明妈妈请假的分钟数。
输入/输出例子1
输入:
1
输出:
24
1440
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a;
cin>>n>>a;
cout<<n*24<<endl;
cout<<n*24*60;
return 0;
}
扩建花圃问题 查看测评数据信息
梅山小学有一块长方形花圃(花圃的长宽都是整数),长m 米,宽未知。在修建校园时,花圃的长增加了 n米,此时发现增加出来的面积有 s平方米。请编程计算出原来花圃的面积是多少平方米?
输入格式
3个整数,分别是m、n、s。m、n、s。
输出格式
一个整数,原来花圃的面积数
输入/输出例子1
输入:
8 3 18
输出:
48
#include<bits/stdc++.h>
using namespace std;
int main(){
int m,n,s;
cin>>m>>n>>s;
cout<<s/n*m;
return 0;
}
时钟旋转 查看测评数据信息
时钟上面的时针从 m 时走到 n 时旋转了多少度?(m≤n,且 m 和 n 都是1∼12之间的整数)。
输入格式
2 个整数 m和 n。
输出格式
1 个整数代表时针旋转的度数
输入/输出例子1
输入:
1 4
输出:
90
#include<bits/stdc++.h>
using namespace std;
int main(){
int m,n;
cin>>m>>n;
cout<<(n-m)*30;
return 0;
}
小明的游泳时间 查看测评数据信息
奥运会要到了,小明在拼命练习游泳准备参加游泳比赛。这一天,小明给自己的游泳时间做了精确的计时(本题中的计时都按24小时制计算),它发现自己从a时b分一直游泳到当天的c时d分,请你帮小明计算一下,它这天一共游了多少时间呢?小明游的好辛苦呀,你可不要算错了哦。
输入格式
一行内输入4个整数,分别表示a,b,c,d
输出格式
一行内输出2个整数e和f,用空格间隔,依次表示小明这天一共游了多少小时多少分钟。其中表示分钟的整数f应该小于60
输入/输出例子1
输入:
12 50 19 10
输出:
6 20
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c,d,e,f;
cin>>a>>b>>c>>d;
if(b>d){
d=d+60;
e=c-(a+1);
}
else e=c-a;
f=d-b;
cout<<e<<" "<<f;
return 0;
}