C++基础2(运算符程序结构流程数组)
Posted 枸杞仙人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++基础2(运算符程序结构流程数组)相关的知识,希望对你有一定的参考价值。
C++基础
运算符
运算符类型 | 作用 |
---|---|
算术运算符 | 用于处理四则运算 |
赋值运算符 | 用于将表达式的值赋给变量 |
比较运算符 | 用于表达式的比较,并返回一个真值或假值 |
逻辑运算符 | 用于根据表达式的值返回真值或假值 |
算术运算符
用于处理四则运算
算术运算符包括以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
- | 负号 | -3 | -3 |
+ | 加 | 10 + 5 | 15 |
- | 减 | 10 - 5 | 5 |
* | 乘 | 10 * 5 | 50 |
/ | 除 | 10 / 5 | 2 |
% | 取模(取余) | 10 % 3 | 1 |
++ | 前置递增 | a=2; b=++a; | a=3; b=3; |
++ | 后置递增 | a=2; b=a++; | a=3; b=2; |
– | 前置递减 | a=2; b=–a; | a=1; b=1; |
– | 后置递减 | a=2; b=a–; | a=1; b=2; |
示例1:
#include<iostream>
using namespace std;
//加减乘除
int main()
int a1 = 10;
int b1 = 3;
cout << a1 + b1 << endl;
cout << a1 - b1 << endl;
cout << a1 * b1 << endl;
cout << a1 / b1 << endl; //两个整数相除结果依然是整数
int a2 = 10;
int b2 = 20;
cout << a2 / b2 << endl;
int a3 = 10;
int b3 = 0;
//cout << a3 / b3 << endl; //报错,除数不可以为0
//两个小数可以相除
double d1 = 0.5;
double d2 = 0.25;
cout << d1 / d2 << endl;
return 0;
13
7
30
3
0
2
示例2:
#include<iostream>
using namespace std;
//取模
int main()
int a1 = 10;
int b1 = 3;
cout << 10 % 3 << endl;
int a2 = 10;
int b2 = 20;
cout << a2 % b2 << endl;
int a3 = 10;
int b3 = 0;
//cout << a3 % b3 << endl; //取模运算时,除数也不能为0
//两个小数不可以取模
double d1 = 3.14;
double d2 = 1.1;
//cout << d1 % d2 << endl;
return 0;
1
10
只有整型变量可以进行取模运算
示例3:
#include<iostream>
using namespace std;
//递增
int main()
//后置递增
int a = 10;
a++; //等价于a = a + 1
cout << a << endl; // 11
//前置递增
int b = 10;
++b;
cout << b << endl; // 11
//区别
//前置递增先对变量进行++,再计算表达式
int a2 = 10;
int b2 = ++a2 * 10;
cout << b2 << endl;
//后置递增先计算表达式,后对变量进行++
int a3 = 10;
int b3 = a3++ * 10;
cout << b3 << endl;
return 0;
11
11
110
100
赋值运算符
用于将表达式的值赋给变量
赋值运算符包括以下几个符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
= | 赋值 | a=2; b=3; | a=2; b=3; |
+= | 加等于 | a=0; a+=2; | a=2; |
-= | 减等于 | a=5; a-=3; | a=2; |
*= | 乘等于 | a=2; a*=2; | a=4; |
/= | 除等于 | a=4; a/=2; | a=2; |
%= | 模等于 | a=3; a%2; | a=1; |
示例:
#include<iostream>
using namespace std;
int main()
//赋值运算符
// =
int a = 10;
a = 100;
cout << "a = " << a << endl;
// +=
a = 10;
a += 2; // a = a + 2;
cout << "a = " << a << endl;
// -=
a = 10;
a -= 2; // a = a - 2
cout << "a = " << a << endl;
// *=
a = 10;
a *= 2; // a = a * 2
cout << "a = " << a << endl;
// /=
a = 10;
a /= 2; // a = a / 2;
cout << "a = " << a << endl;
// %=
a = 10;
a %= 2; // a = a % 2;
cout << "a = " << a << endl;
return 0;
a = 100
a = 12
a = 8
a = 20
a = 5
a = 0
比较运算符
用于表达式的比较,并返回一个真值或假值
比较运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
== | 相等于 | 4 == 3 | 0 |
!= | 不等于 | 4 != 3 | 1 |
< | 小于 | 4 < 3 | 0 |
> | 大于 | 4 > 3 | 1 |
<= | 小于等于 | 4 <= 3 | 0 |
>= | 大于等于 | 4 >= 1 | 1 |
示例:
#include<iostream>
using namespace std;
int main()
int a = 10;
int b = 20;
cout << (a == b) << endl; // 0
cout << (a != b) << endl; // 1
cout << (a > b) << endl; // 0
cout << (a < b) << endl; // 1
cout << (a >= b) << endl; // 0
cout << (a <= b) << endl; // 1
return 0;
> 注意:C和C++ 语言的比较运算中, ==“真”用数字“1”来表示, “假”用数字“0”来表示。==
逻辑运算符
用于根据表达式的值返回真值或假值
逻辑运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
! | 非 | !a | 如果a为假,则!a为真; 如果a为真,则!a为假。 |
&& | 与 | a && b | 如果a和b都为真,则结果为真,否则为假。 |
|| | 或 | a || b | 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
示例1:逻辑非
#include<iostream>
using namespace std;
//逻辑运算符 --- 非
int main()
int a = 10;
cout << !a << endl; // 0
cout << !!a << endl; // 1
return 0;
总结: 真变假,假变真
示例2:逻辑与
#include<iostream>
using namespace std;
//逻辑运算符 --- 与
int main()
int a = 10;
int b = 10;
cout << (a && b) << endl;// 1
a = 10;
b = 0;
cout << (a && b) << endl;// 0
a = 0;
b = 0;
cout << (a && b) << endl;// 0
return 0;
总结:逻辑与运算符总结: 同真为真,其余为假
示例3:逻辑或
#include<iostream>
using namespace std;
//逻辑运算符 --- 或
int main()
int a = 10;
int b = 10;
cout << (a || b) << endl;// 1
a = 10;
b = 0;
cout << (a || b) << endl;// 1
a = 0;
b = 0;
cout << (a || b) << endl;// 0
return 0;
逻辑或运算符总结: 同假为假,其余为真
程序流程结构
C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
- 顺序结构:程序按顺序执行,不发生跳转
- 选择结构:依据条件是否满足,有选择的执行相应功能
- 循环结构:依据条件是否满足,循环多次执行某段代码
选择结构
if语句
执行满足条件的语句
if语句的三种形式:
-
单行格式if语句
-
多行格式if语句
-
多条件的if语句
-
单行格式if语句:
if(条件) 条件满足执行的语句
示例:
#include<iostream>
using namespace std;
int main()
//选择结构-单行if语句
//输入一个分数,如果分数大于600分,视为考上一本大学,并在屏幕上打印
int score = 0;
cout << "请输入一个分数:" << endl;
cin >> score;
cout << "您输入的分数为: " << score << endl;
//if语句
//注意事项,在if判断语句后面,不要加分号
if (score > 600)
cout << "我考上了一本大学!!!" << endl;
return 0;
699
您输入的分数为: 699
我考上了一本大学!!!
- 多行格式if语句:
if(条件) 条件满足执行的语句 else 条件不满足执行的语句 ;
示例:
#include<iostream>
using namespace std;
int main()
int score = 0;
cout << "请输入考试分数:" << endl;
cin >> score;
if (score > 600)
cout << "我考上了一本大学" << endl;
else
cout << "我未考上一本大学" << endl;
return 0;
500
我未考上一本大学
- 多条件的if语句:
if(条件1) 条件1满足执行的语句 else if(条件2)条件2满足执行的语句... else 都不满足执行的语句
示例:
#include<iostream>
using namespace std;
int main()
int score = 0;
cout << "请输入考试分数:" << endl;
cin >> score;
if (score > 600)
cout << "我考上了一本大学" << endl;
else if (score > 500)
cout << "我考上了二本大学" << endl;
else if (score > 400)
cout << "我考上了三本大学" << endl;
else
cout << "我未考上本科" << endl;
return 0;
嵌套if语句:在if语句中,可以嵌套使用if语句,达到更精确的条件判断
案例需求:
- 提示用户输入一个高考考试分数,根据分数做如下判断
- 分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科;
- 在一本分数中,如果大于700分,考入北大,大于650分,考入清华,大于600考入人大。
示例:
#include<iostream>
using namespace std;
int main()
int score = 0;
cout << "请输入考试分数:" << endl;
cin >> score;
if (score > 600)
cout << "我考上了一本大学" << endl;
if (score > 700)
cout << "我考上了北大" << endl;
else if (score > 650)
cout << "我考上了清华" << endl;
else
cout << "我考上了人大" << endl;
else if (score > 500)
cout << "我考上了二本大学" << endl;
else if (score > 400)
cout << "我考上了三本大学" << endl;
else
cout << "我未考上本科" << endl;
return 0;
练习案例: 三只小猪称体重
有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?
#include <iostream>
using namespace std;
int main()
int maxw=0;
int temp =0;
cout << "请输入第一只小猪的体重:"<<endl;
cin >> temp;
if (temp > maxw)
maxw = temp;
cout << "请输入第二只小猪的体重:"<<endl;
cin >> temp;
if (temp > maxw)
maxw = temp;
cout << "请输入第三只小猪的体重:"<<endl;
cin >> temp;
if (temp > maxw)
maxw = temp;
cout<<"最重的小猪的体重是:" << maxw <<endl;
三目运算符
语法:表达式1 ? 表达式2 :表达式3
解释:
如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
如果表达式1的值为假,执行表达式3,并返回表达式3的结果。
示例:
#include <iostream>
using namespace std;
int main()
int a = 10;
int b = 20;
int c = 0;
c = a > b ? a : b;
cout << "c = " << c << endl;
//C++中三目运算符返回的是变量,可以继续赋值
(a > b ? a : b) = 100;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
return 0;
和if语句比较,三目运算符优点是短小整洁,缺点是如果用嵌套,结构不清晰
switch语句
语法:
switch(表达式)
case 结果1:执行语句;break;
case 结果2:执行语句;break;
...
default:执行语句;break;
示例:
#include <iostream>
using namespace std;
int main()
//请给电影评分
//10 ~ 9 经典
// 8 ~ 7 非常好
// 6 ~ 5 一般
// 5分以下 烂片
int score = 0;
cout << "请给电影打分" << endl;
cin >> score;
switch (score)
case 10:
case 9:
cout << "经典" << endl;
break;
case 8:
cout << "非常好" << endl;
break;
case 7:
case 6:
cout << "一般" << endl;
break;
default:
cout << "烂片" << endl;
break;
return 0;
注意1:switch语句中表达式类型只能是整型或者字符型
注意2:case里如果没有break,那么程序会一直向下执行
总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间
循环结构
while循环语句
语法:while(循环条件) 循环语句
解释:只要循环条件的结果为真,就执行循环语句
示例:
#include <iostream>
using namespace std;
int main()
int num = 0;
while (num < 10)
cout << "num = " << num << endl;
num++;
return 0;
num = 0
num = 1
num = 2
num = 3
num = 4
num = 5
num = 6
num = 7
num = 8
num = 9
do…while循环语句
语法: do 循环语句 while(循环条件);
**注意:**与while的区别在于do…while会先执行一次循环语句,再判断循环条件
示例:
#include <iostream>
using namespace std;
int main()
int num = 0;
do
cout << num << endl;
num++;
while (num < 10);
return 0;
0
1
2
3
4
5
6
7
8
9
练习案例:水仙花数
**案例描述:**水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
例如: 1 3 + 5 3 + 3 3 = 153 1^3 + 5^3+ 3^3 = 153 13+53+33=153
请利用do…while语句,求出所有3位数中的水仙花数。
#include <iostream>
using namespace std;
int main()
int a=100;
int n1,n2,n3;
do
n1 = a % 10;
n2 = a/10 % 10;
n3 = a/100 % 10;
if (a == n1*n1*n1+n2*n2*n2+n3*n3*n3)
cout<<a<<endl;
a++;
while(a<以上是关于C++基础2(运算符程序结构流程数组)的主要内容,如果未能解决你的问题,请参考以下文章