C++基础2(运算符程序结构流程数组)

Posted 枸杞仙人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++基础2(运算符程序结构流程数组)相关的知识,希望对你有一定的参考价值。

C++基础

运算符

运算符类型作用
算术运算符用于处理四则运算
赋值运算符用于将表达式的值赋给变量
比较运算符用于表达式的比较,并返回一个真值或假值
逻辑运算符用于根据表达式的值返回真值或假值

算术运算符

用于处理四则运算

算术运算符包括以下符号:

运算符术语示例结果
+正号+33
-负号-3-3
+10 + 515
-10 - 55
*10 * 550
/10 / 52
%取模(取余)10 % 31
++前置递增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 == 30
!=不等于4 != 31
<小于4 < 30
>大于4 > 31
<=小于等于4 <= 30
>=大于等于4 >= 11

示例:

#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语句

  1. 单行格式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
我考上了一本大学!!!
  1. 多行格式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
我未考上一本大学
  1. 多条件的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(运算符程序结构流程数组)的主要内容,如果未能解决你的问题,请参考以下文章

C++基础入门丨4. 程序结构有哪几种?——程序流程结构

C++基础入门丨4. 程序结构有哪几种?——程序流程结构

C++基础入门丨4. 程序结构有哪几种?——程序流程结构

C++基础入门丨4. 程序结构有哪几种?——程序流程结构

编程基础- 概念总结

初识C++之程序流程结构