C++信息学奥赛课程 想学的收藏一下不然就找不到了
随着人工智能的不断发展,个人特长也越来越重要,很多学生要进入一个好的学校完全考裸分,很难,本文就想给到部分学生提供一个学习C++信息学的机会。(每周三更新新课,想学的朋友可以收藏+粉丝,带你从0-1玩转信息学奥赛)
使用C++程序让电脑和我们进行交流;
#include //包含头文件
using namespace std; //使用标准名字空间
int main(){ //程序的主函数入口
return 0; //函数返回值 0
}
代码如下(示例):
cout<<“Hello world”;
显示器 输出运算符 输出的内容 分号结尾
代码如下(示例):
cout<<"Hello world";
cout<< "123456";
cout<<"@ :)";
cout<<"中国"
cout << end;
end->结束
l->行
endl就是结束行
cout<<项目1<<项目2<<项目3<<项目4<<endl;
//连续输出不换行
cout<<项目1<<endl<<项目2<<<endl<<项目3<<endl<<项目4<<endl;
//连续输出换行
//输出一个10*10的正方形用*号表示
system("颜色 背景颜色文本颜色");
system("color e1")
Beep(声音的频率,时长,单位是毫秒)
Beep(1000,500);
学习的电脑的输出语句
学习了让电脑发出声音
储存数据的“箱子”-变量
int a;
int->称为数据类型
a->称为变量名
赋值->将数据存储到变量中的
赋值运算符号 =
创建变量:int a;
变量的赋值:a = 1;
使用变量:cout<<a<<endl;//就能查看变量a中的数据
拓展:
创建变量又称定义变量;
在同一{}中不能创建相同的变量;
先定义在赋值
int b;
b = 2;
定义就赋值
int c = 2;
又称为变量的重新赋值
int a;
a = 1;
a = 2;
代码逻辑从上到下执行,最后的结果就是a = 2;
1:字母、数字、下划线_ ;
2:区分大小写;
3:数字不能开头;
4:不能使用int这种已经有特殊意义的变量;
同时定义多个变量
int a,b;
int a=b=1;
int a=1,b=2;
int m=200;
int n=m;
cout<<n<<endl;//还是200
//方法1:
int a = 1;
int b = 2;
int c = a;
b = a;
a = c;
//方法2:
//swap()函数的使用
int d=3 , g=4;
swap(d,g);
cout<<d<<g<<endl;
单个输入:
int a;
cin >> 数据存储变量;
cin >> a;
//就可以往变量a中输入一个整数值;
连续输入:
int a,b;
cin>>a>>b;
举例:
输入两个数,输出两个数的和
int a,b;
cin>>a>>b;
cout<<a+b;
1:变量的命名规则,什么是变量
2:赋值= 意思是将变量右边的值赋值给变量左边的名字
3:变量的重新赋值
4:输入运算符 >> 连续的输入 cin>>a>>b;
输出两个数的和
int a=b=6;
cout<<a+b;
区别:
数学 c++
+ +
- -
x *
÷ \
() ()
表达式:数学算式 : 6+3
解释:用运算符 将 操作数 连接起来的式子叫做表达式
//练习
8-3÷2
4x5
20-3
(2+3)x6
用户输入价格后在进行输出,好处在于价格的变化不影响程序的编程,也无需修改程序就能获得值
cout<<7+4<<endl;
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
表达式的结果:
a = 6;
b = 3;
a+b;
//如果还想使用结果那么就可以申明新的变量来接收
int c = a+b;
cout<<c<<endl;//就输出了a+b的值
天安门广场位于北京市中心,可容纳100万人举行盛大集会,是世界上最大的城市广场。天安门广场南北长880米,东西宽500米。请问它的周长和面积分别是多少?
#include
using namespace std;
int main(){
int a,b;
cin>>a>>b;
int c = (a+b)*2;
cout<<"周长="<<c<<endl;
int s = a*b;
cout<<"面积="<<s<<endl;
return 0;
}
编写一个程序,算一算《雪花》第一句中数字1、2、3、4的和是多少?
雪花一片二片三四片,
五片六片七八片,
九片十片无数片,
飞入梅花都不见。
#include
using namespace std;
int main(){
int sum = 0;
sum = sum + 1;
sum = sum + 2;
sum = sum + 3;
sum = sum + 4;
cout<<sum<<endl;
return 0;
}
问题:还剩下多少钱?
童童从零花钱中拿了50元钱去文具店买练习本,—个练习本3元,请问他最多能买多少个练习本,还剩下多少钱?
50÷3=16…… 2
取余运算:两个数相除的余数
数学:5 ÷ 2 = 2 ····· 1
c++ :
5 / 2 = 2 商
5%2 = 1 余数
int a = 50,b = 3;
int c = a / b;
int d = a % b;
cout << c << endl;
前情提要
尼克家种的胡萝卜今年不仅大丰收,而且还收获了一棵超级胡萝卜王。强盗兔听到了这个消息,就想把这棵萝卜占为己有。这天强盗兔来到尼克家门口,记下了他家的门牌号—62号,准备晚上再动手。这件事刚好被尼克发现了,聪明的尼克把门牌号上的十位数字和个位数字换一下,变成了26号并报警。晚上,愚蠢的强盗兔找了半天都没找到62号,同时被警察逮了个正着。
//编写一个程序,输入一个两位数,交换十位与个位上的数字,并输出。
#include
using namespace std;
int main(){
int n,ge,shi;
cin>>n;
shi = n /10;
ge = n % 10;
n = ge*10 + shi;
cout<<n<<endl;
return 0;
}
//输入一个三位正整数,将这个整数倒过来输出。例如:输入123,输出321。
#include
using namespace std;
int main(){
int r,x,y,z;
cin>>r;
z = r/100;
y = r/10%10;
x = r%10;
r = x*100+y*10+z;
cout<<r<<endl;
return 0;
}
//童童和他的好朋友去电影院看电影,电影的时长是8315秒,请问他们看了几小时、几分钟、几秒?
//1小时=60分钟
//1分钟=60秒
#include
using namespace std;
int main(){
int n = 8315,h,m,s;
h = n/60/60;
m = n/60%60;
s = n%60;
cout << h << ":" << m << ":" << s << endl;
return 0;
}
输出:
18
+ 870
----------
888
#include
using namespace std;
int main(){
int a= 18, b = 870;
int c = a +b;
cout << " "<< a << endl;
cout << " "<< "+"<<" "<< b <<endl;
cout <<"----------" << endl;
cout <<" "<< c << endl;
return 0;
}
上面输出要是改变了一个值,那么输出的空格又要变化才能对齐;
#include
#include
using namespace std;
int main(){
cout<<setw(-10)<<123<<endl;
cout<<setw(10)<<123<<endl;
return 0;
}
浮点数顾名思义小数,本节课学习C++中小数的表示方式
课题引入:
童童买了一根钢笔和一个笔袋,请问一共花了多少钱?
品名:钢笔单价:3.5元
品名:笔袋单价:9.9元
#include
using namespace std;
int main(){
int a=3.5,b=9.9;
int c = a + b;
cout<<c<<endl;
return 0;
}
不难发现输出的是整数12;怎么表示小数呢?
数据类型
int 整数类型
float 浮点数类型
那么代码更改为如下就可实现
#include
using namespace std;
int main(){
float a=3.5,b=9.9;
float c = a + b;
cout<<c<<endl;
return 0;
}
古埃及国王也称为法老,是古埃及最大的奴隶主,拥有至高无上的权力,他们被看做神的化身。他们为自己修建了巨大的陵墓,因其外形像汉字的“金”字,被称为“金字塔”。金字塔是法老权力的象征,埃及至今共发现金字塔96座。
例题:
“金字塔”的底是正方形,侧面由四个大小相等的等腰三角形构成。
请编写一个程序,输入底和高,输出三角形的面积。
提示:三角形面积=底*高/2
int a=3,h=5;
float s =a*h/2;
cout << "s="<<s << endl;
//输出的结果是 7
int a=3,h=5;
float s =a*h/2.0;
cout << "s="<<s << endl;
//输出的结果是 7.5
区别,整数在相乘相除时得到还是一个整数,那么如果在运算过程中遇到了小数,它会自动转为小数运算,得到小数的结果;
不同类型的数据之间,可以进行类型转换。
int -> float 2->2.0
flota -> int 2.0->2
float a = 2.5;
cout << int(a) << endl;//浮点型转换成整型;
int b = 2;
cout << float(b)<< endl;//整型转换成浮点型;
练习:
1 .童童的体重是33.5千克,美美的体重的是28.6千克,达达的体重是38.2千克,他们的平均体重是多少?请使用键盘输入的方式输入体重。
#include
using namespace std;
int main(){
cout <<"请输入体重:"<<endl;
float x, y,z;
cin >>×>> y>>z;
float k =(x+y+z)/3;
cout <<"k=" << k << endl;
}
格式化输出
成员函数 | 作用相同的控制符 | 作用 |
---|---|---|
precision(n) | setprecision(n) | 设置实数的精度为n位 |
width(n) | setw[n) | 设置字段亮度为n位 |
setf(ios::state) | setiosflags(ios::state) | 设置输出格式状态,括号中应该给出格式状态 |
fill(c) | setfill(c) | 设置填充字符c |
unsetf(ios::state) | resetioflags(ios::state) | 终止己设置的输出格式状态 |
举例讲解:
float a = 3.19;
cout<<setprecision(2)<<a<<endl; //3.2
//保留的数字的两位,包含整数+小数位数
cout.precision(2);
cout<<a<<endl; //3.2
cout<<setw(10)<<setiosflags(ios:right)<<a<<endl;
//输出的就是右对齐一个10个字符位置
//自行练习...........
植树节
植树节到了,童程童美学院组织植树活动,规定每位同学品要完成两棵小树苗的种植。A班、B班、C班的学生人数通过键盘输入。
分别计算A班、B班、C班种植的小树苗数量。
#include
using namespace std;
int main(){
int a, b,c;
cin a >> b >>c;
int sum_a = a*2;
int sum_b = b*2;
int sum_c = c*2;
cout << "A:” << sum_a << endl;
cout << "B:” << sum_b << endl;
cout << "C:" << sum_c << endl;
}
程序运行过程中,不会改变的量,称为常量。
const in N = 2;
常量的变量名我们约定都是大写;
const 是定义常量的关键字,常量定义后无法改变,上面题目上a2 b2 c*2其中2就是常量
定义常量的好处:
1:常量通常有明确的含义,让代码便于理解;
2:便统一修改;
例题1:
从键盘输入圆的半径r,计算圆的面积和周长。
面积公式:s=π x r x r
周长公式: c =2×π×r
注:π圆周率是周长和直径d的比,是一个固定值,约等于3.14
#include
using namespace std;
int main(){
const float PI =3.14;
f1oat r;
cin >> r;
//计算网的周长和面积
float s =PI * r * r;
float c =2 * PI * r;
cout <<"面积:"<< s << endl;
cout <<"周长:" << c << endl;
return 0;
}
例题2:
细胞分裂
细胞学说是1838-1839年由德国的植物学家施莱登和动物学家施旺提出。该学说认为一切生物都是由细胞构成,细胞是生命的结构单位,细胞只能由细胞分裂而来。
1个细胞,第一次分裂成2个,第二次2个分裂成4个,…编写一个程序,算一算第5次分裂成几个。
1个细胞,第一次分裂成2个,第二次2个分裂成4个,…编写一个程序,算—算第5次分裂成几个。
int n = 1;
第一次: n = n*2;
第二次: n = n * 2;
第三次: n = n * 2;
…
#include
using namespace std;
int main(){
int n= 1;
n=n*2;
n=n*2;
n=n*2;
n*=2;
n*=2;
cout << n << endl;
return 0;
}
+=加等 *=乘等 /=除等 -=减等 %=取余等
a = a + 1 -> a+=1
a = a / 2 -> a/=2
//练习
//自行计算如下代码结果
int x = 1, y = 2,z = 3;
z *= x+y*3;
cout<<z<<endl;
x = (z+=3)*2;
cout<<x<<endl;
cout<<z<<endl;
x%=z/y+5;
cout<<x<<endl;
float 单精度浮点数
double 双精度浮点数
类型 | 字节数 | 上下限 | 有效位数 | 举例 |
---|---|---|---|---|
整数 | 4 | -2^31 ~ 2^31-1 | 10 | int i; |
长整型 | 8 | -2^63 ~ 2^62-1 | 19 | long long i; |
例如: int a = 100;
例如: int b = 5/2; b = 2
int max = 2147483647;
int min = -2147483648
计算变量存储空间的大小
【问题描述】
分别定义short , int, long long类型的变量各一个,并依次输出它们的存储空间大小(单位∶字节)。
输出格式:一行,三个整数,分别是三个变量的存储空间大小,用一个空格隔开。
【样例输出】2 4 8
//计算变量存储空间的大小
#include
using namespace std;
int main(){
short a;
int b;
long long c;
cout << sizeof(a) << " ";
cout << sizeof(b) << " ";
cout << sizeof(c) << endl;
return 0;
}
类型 | 字节数 | 上下限 | 有效位数 | 举例 |
---|---|---|---|---|
单精度浮点型 | 4 | -3.4e-38~3.4e+38 | 7 | float i; |
双精度浮点型 | 8 | -1.7e-308~1.7e+308 | 15 | double i; |
通常写法∶3.14、314、0.1;
科学计数法︰1.25e2、1.25e-2 ;
其中1.25e2表示1.25乘以10的2次方;1.25e-2表示1.25乘以10的负2次方。
例如: float f1 = 3.14f;
#include
cout << fixed <<setprecision(2)<< a ;
fixed :按照一般小数形式输出
setprecision(2): 设置小数精度
a: 变量名
【问题描述】
输入正方形的边长m和n(保证m
【样例输出】阴影的面积为:150
#include
using namespace std;
int main(){
//计算阴影部分的面积
//声明两个double类型变量储存边长,并输入double a,b;
cin >> a > b;
//[声明三个double类型变量存储总面积,左上角空白,上角空白
double alls,as,bs;
//计算面积
alls = a *a + b *b;
as = (a + b)*a / 2;bs = b *b / 2;
//输出
cout <<"阴影的面积为:" << alls - as - bs << endl;
return 0;
}
【问题描述】
编程实现输入圆形的半径值(double),输出圆的周长和面积(π取3.14)
圆形周长公式:C=2πR圆形面积公式:S=πR2
【样例输入】
5.67
【样例输出】
圆的周长为:35.6076
圆的面积为:100.948
#include
using namespace std;
int main(){
//声明变量r,输入double r;
cin >>r;
/计算周长,面积
doub1e c,s,pi = 3.14;c = 2 * pi * r;
s = pi * r * r;//输出周长和面积
cout <<“圆的周长为:"<< c << endl;
cout <<“圆的面积为:"<< s << endl;
return 0;
}
类型 | 字节数 | 上下限 | 举例 |
---|---|---|---|
字符型 | 1 | 256个不同字符 | char i; |
1、字符常量只能用单引号括起来,不能用双引号或其他括号。例如:‘A’,‘&’;
2、字符常量只能是单个字符,不能是字符串也不能为空。
错误写法:‘ABC’ , "
3、字符可以是字符集中任意字符。但数字被定义为字符型之后就不能当作数字本身参与数值运算。如‘5’和5是不同的。‘5’是字符常量,不能作为数值5参与运算。
ASCII需要记住的三个
‘a’ - 97
‘A’ - 65
‘0’ - 48
【问题描述】
输入英文字母(输入范围为A-Z,a-z之间),输出对应的ASCII值。
【样例输入1】A
【样例输出1】65
【样例输入2】z
【样例输出2】122
//输入字母字符
char c;
cin >> C;
//输出字母字符对应的ASCIIcout <
【问题描述】
输入数字字符(输入范围为‘0 - 9’之间),
输出两行,第一行是该字符对应的数字,第二行为该数字与1的和。
【样例输入】
3
【样例输出】
3
4
//输入数字字符char n;
cin >> n;
//输出数字字符对应的数值
cout << n - '0' << endl;
//输出对应的数值与数宁1的和
cout << n - '0'+1 << endl;
return 0;
【问题描述】
输入大写字母(输入范围为A-Z之间),输出对应的小写字母。
【样例输入1】A
【样例输出1】a
【样例输入2】Z
【样例输出2】z
//输入大写字母
char c;
cin >> c;
c = c+ 32;
//输出对应的小写字母
cout << c << endl;
return 0;
【问题描述】
输入圆形的半径,输出圆形的周长和面积。半径的输入范围为:0
【样例输入】3.2
【样例输出】20.106232.1699
#include
using namespace std;
int main(){
//输入圆的半径r
double r;
cin >> r;
//计算圆的周长c和面积s
const double pi = 3.14159265;
double c = 2* pi * r;
double s = pi * r *r;//输出
cout << c << " " << s << endl;
return 0;
}
布尔型数据用来判断真假,值只有两个,true和false
bool a = true;
bool b = false;
cout<< a<< “”<<b<<endl;
true转换为整型值为1,false转换为整型值为0
C++中只有数字0可以隐式转换为false,其它值都转换为true
bool a = 10,b = 0,c = -20;
cout << a<<" "<< b<<" "<
[char short ] -> int -> long long
float - > double
从小类型到大类型可自动完成转换
练习:
char a = 'a';
short b = 3;
int c = 100;
long long d = 240;
double e = 3.12345;
cout << a+ b<<endl;
cout <<c+ d<< endl;
cout << d +e<< endl;
cout <<e +a<< endl;
强制类型转换有两种格式:
(数据类型)变量
数据类型(变量或表达式)
float a = 3.14; a = 3 ? (int) a;
float b = 1.32; int (a+ b);
不管是隐式类型转换还是强制类型转换,我们遵循由小到大的原则才能确保数据的安全。
如果大数据类型转小数据类型会发生什么呢?
int a;
long long b = 53216547892;
a = ( int ) b;
cout < // 结果为:1676940340
以下代码运行的结果是;
#include
using namespace std;
int main(){
int m = 11,n = 6;
double b = 2;
cout << m%n/b << endl;
return 0;
}
【问题描述】
对于半径为r的球,其体积的计算公式为V=4/3Tr3,这里取T = 3.14。现给定r,求V
输入为一个不超过100的非负实数,即球半径,类型为double型。
输出一个实数,即球的体积,保留小数点后2位。【样例输入】4
【样例输出】267.95
#include
#include
using namespace std;
int main(){
//输入球的半径double r;
cin >> r;
/计算球的体积
const double pi = 3.14;
double v = 1.0*4/3*pi*r*r*r;//输出体积并保留2位小数
cout <<fixed << setprecision(2) << v << endl;
return 0;
}
int a = 1 , b = 2 , c = 3;
c = c + a; →c += a;
b = b - a; →b -= a;
a = a * c; →a *= c;
b = b / c; →b /= c;
“关系运算”实际上就是“比较运算”
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
解释:由关系运算符和运算数组成的式子就是关系表达式
int a = 10;
a < b
int b = 20;
a > b
a >= b
a != b
a <= b
a == b
关系表达式的值(运算结果)是布尔类型
语法规则
if(判断条件){
条件为真要做的事;
}
举例:
//if语句
//声明布尔型变量
bool is_sunny = true;
//使用i子语句进行判断
if(is_sunny == true){
//条件为真做的事
cout <<"去爬山";
}
int n = 100 ;
if(n == 100){
cout <<“变量n的值为100”;
}
// ==表示判断
// =表示赋值
【问题描述】
编程实现输入一个正整数,判断其奇偶性,并输出;
【样例输入】23
【样例输出】奇数
【样例输入】44
【样例输出】偶数
分析:如何判断一个整数的奇偶性 偶数的特点->能被2整除->整数%2== 0 ; 奇数的特点->不能被2整除->整数%2!=0
【问题描述】
输入考试成绩(成绩为0~100之间的整数),如果成绩大于或等于60算及格,及格则输出YES,如果成绩小于60算不及格,不及格则输出NO。
【样例输入】62
【样例输出】YES
【样例输入】59
【样例输出】NO
//声明整型变量,输入
int score;
cin >> score;
//使用if语句进行判断
//及格
if(score >= 60){
cout <<"及格";
}
//不及格
if(score < 60){
cout <<"不及格";
}
return 0;
【问题描述】
超市苹果打折促销,总重量如果不超过5斤,单价3元/斤,如果超过5斤,超过部分打八折;输入为所购买苹果的重量,输出为应付款的总额。
【样例输入1】10
【样例输出1】27
【样例输入2】10.2
【样例输出2】27.48
#include
using namespace std;
int main(){
//声明double类型变量,并输入
double w;cin >> w;
//使用if语句来判断,计算
//不超过5斤
if(w <= 5){
cout << w* 3 << endl;
}
//超过5斤
if(w > 5){
cout <<5*3+(w-5)*3*0.8 << endl;
}
return 0;
}
if...else...语句 //语法结构
if(条件)
条件为真时执行;
} else{
条件为假时执行;
}
A.【问题描述】
编程实现输入一个整数,判断其奇偶性,并输出。
【样例输入】23
【样例输出】奇数
【样例输入】44
【样例输出】偶数
//使用if-else语句判断整数的奇偶性
int n;
cin >> n;
if(n % 2 == 0){
cout <<"偶数";
}else{//奇数
cout <<"奇数";
}
return 0;
B.【问题描述】
编程实现输入一个整数,输出它的绝对值。
【样例输入】51
【样例输出】51
【样例输入】-34
【样例输出】34
/输出一个整数的绝对值int n;
cin > n;
if(n >= 0){
cout << n << endl;
}else{ //n < 0
cout << 0 - n << endl;
}
return O;
if(条件){
条件为真时执行;
} else if(条件){
条件为真时执行;
}
....
else {
上面的条件都为假时执行;
}
【问题描述】
在北大校园里没有自行车上课办事会很不方便。但实际上并非去办任何事情都是骑车快,因为骑车需要找车、开锁、停车、锁车,这要耽误一些时间。假设找到自行车开锁并骑上自行车的时间为27秒,停车锁车的时间为23秒。步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。
【输入】输入一行,包含一个整数,表示某次办事要行走的距离,单位为米。
【输出】输出一行,如果骑车快输出一行“Bike”;如果走路快输出一行“Walk";如果一样快输出一行"All"。
【样例输入】120
【样例输出】Bike
//声明整型变量sint s;
cin >> s;
double bt,wt;
//计算时间时间=总距离/每秒走的距离
bt = 27 +s / 3.0 +23;
wt = s / 1.2;
//判断哪种方式快
if(bt < wt){
cout << "Bike" ;
}else if(bt > wt){
cout << "walk";
}else{
cout <<"A11";
}
return 0;
【问题描述】
输入一个整数,如果是5的倍数,那么输出倍数的值,否则输出No。
【样例输入1】15
【样例输出1】3
【样例输入2】12
【样例输出2】No
#include
using namespace std;
int main(){
//声明整型变量n,并输入
int n;
cin >> n;
//使用if-else语句判断是否是5的倍数
if(n % 5 == 0 ){
}else{ //n不是5的倍数
cout <<"No";
}
return 0;
}
if(账号正确){
if(密码正确){
cout <<“登录成功”;
}else{
cout<<“密码错误”;
}
}else{
cout <<“账号错误”;
}
判断账号密码
【问题描述】
首先设定账号为123,密码为456。编写程序,实现账号和密码登录,并输出登录结果。
【样例输入1】123 456
【样例输出1】登录成功
【样例输入2】123 789
【样例输出2】密码错误
//声明变量,存储注册时的账号密码,输入的账号密码
int user = 123,pw = 456,u,p;
cin >>u>>p;
//使用分支嵌套进行判断
if(u == user){//账号正确
//判断密码
if(p == pw){
cout <<"登录成功";
}else{//密码错误
cout <<"密码错误";
}
}else{(/账号错误
cout <<"账号错误";
}
【问题描述】
现有一数字35,用户输入一个数字与35作比较,如果4入的数字与35相等,则输出猜对了;如果输入的数字比35小则输出猜小了;如果输入的数字比35大则输出猜大了。
输入∶输入一行,包含1个整数。
输出:一行,输出为字符串“猜对了”、“猜小了”和“猜大了”中的一个。
【样例输入】40
【样例输出】猜大了
//声明整型变量,输入
int num;
cin >>num;//判断
if(num == 35){
cout <<"猜对了";
}else{ //num != 35
if(num > 35){
cout <<"猜大了";
}else{
cout <<"猜小了";
}
}
return 0;
【问题描述】
根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包含1000克),基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。
输入∶输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。
输出:一行,包含一个整数,表示邮费。
【样例输入】1200 y
【样例输出】17
//声明变量,整型变量,字符型变量,输入
int m,money;
char n;
cin >> m >>n;//判断,计算邮资
if(m <= 1000){
money = 8;
}else{//超过1000g
//超过部分的重量是否被500整除
if((m-1000)%500==0){
money = 8 +(m-1000)/500*4;
else{
money = 8 + (m-1000)/500*4 +4;
}
//判断是否加急
if(n== 'y '){
money += 5;
}
}
//输出
cout <<money << endl;
【问题描述】
给定一个整数,判断它能否被3,5整除,并输出以下信息:
1、能同时被3,5整除(直接输出35,两个数中间一个空格);
2、只能被其中一个数整除(输出这个除数);
3、不能被任何数整除,输出小写字母n。
输入:输入一行,包含一个整数m。( -1,000,000 < m<_1,000,000 )
输出:输出一行,按照描述要求给出整数被3,5整除的情况。
【样例输入1】9
【样例输出1】3
【样例输入2】15
【样例输出2】3 5
int n;
cin >>n;//进行判断
if(n%3==0){//能被3整除
if(n%5==0){(/能被5整除
cout << "3"<<" "<<"5"<<endl;
}else{
cout << "3"<<endl;
}
}else if(n%5==0){
cout << "5"<<endl;
else{
cout << "n"<endl;
}
return 0;
! 逻辑非
&& 逻辑与
|| 逻辑或
解释:含有逻辑运算符的表达式称为逻辑表达式
! 逻辑非
&& 逻辑与
|| 逻辑或
逻辑表达式的结果只有两种 (真)1(假)0
! :非,代表相反的意思
!true →false
!false →true
!(4 > 2) →false
!(9>11) →true
&&:与,代表同时的意思
9>5 && 5>3 →true
9>5 && 5<3 →false
9<5 && 5<3 →false
【问题描述】
给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形(任意两条边之和大于第三边)。输出格式:如果能构成三角形,则输出Yes,否则输出No。
【样例输入】345
【样例输出】Yes
//判断三条线段能否构成一个三角形//声明三个整型变量,并输入
int a,b,c;
cin a >> b >>c;
//使用if-else语句进行判
if(a+b>c&&b+c>a&&a+c>b){
cout << "yes";
}else{
cout << "no";
}
return 0;
||∶或,代表其中一个的意思
7> 4 || 3 >1 →true
4>2 || 3 >5 →true
6 > 8 || 7 >9 →false
【问题描述】
给出一名学生的语文和数学成绩,判断他是否恰好有一门课不及格(成绩小于60分)。
输入:一行,包含两个在0到100之间的整数,分别是该生的语文成绩和数学成绩。
输出:若该生恰好有一门课不及格,
输出1;否则输出0。
【样例输入】50 80
【样例输出】1
//判断一门成绩不及格/[声明两个变量,并输入
int chinese,math;
cin > chinese >>math;//使用if-else语句进行判断
if((chinese>=60&&math<60)||(chinese<60&&math>=60)){
cout << 1;
}else{
cout <<0;
}
return 0;
}
【问题描述】
输入一个年份,判断该年是否为闰年。若为闰年则输出Yes ,不是闰年则输出No。
提示∶闰年的判断条件有两个,只要满足其中一个即为闰年。
1)能被400整除
2)不能被100整除,但能被4整除
【样例输入】
2016
【样例输出】
Yes
分析:用逻辑表达式判断是否为闰年
能被400整除
年份%400 == 0
||
不能被100整除,但能被4整除
年份%400 != 0 && 年份%4==0
//判断是否是闰年//声明整型变量,输入
int y;
cin >>y;
//使用if-else语句进行判断
if((y%400==0)ll(y%100!=0&&y%4==O)){
cout << "Yes";
else{
cout <<"No" ;
}
return 0;
【问题描述】
有个一正方形,四个角的坐标(x,y)分别是( 1,-1) ,( 1,1) ,( -1,-1),( -1,1),×是横轴,y是纵轴。写一个程序,判断一个给定的点是否在这个正方形内(包括正方形边界)。
【输入】输入一行,包括两个整数x, y,以一个空格分开,表示坐标( x , y )。
【输出】输出一行,如果点在正方形内,则输出yes,否则输出no。
【输入样例】11
【输出样例】yes
#include
using namespace std;
int main(){
//声明两个整型变量,并输入
int x,y;
cin >>x >>y;
//使用if-else语句判断
if(x>=-1&&x<=1&&y>=-1&&y<=1){
cout << "yes";
}else{
cout << "no" ;
}
return 0;
}