C++程序设计

C++中的变量与运算符

变量的声明方式

变量的声明格式:

数据类型   变量名称

//声明整数类型
int a;

//声明浮点数类型
float b;

//声明布尔类型
bool c;

变量的初始化

//第一种方式

int a = 2;

//第二种方式
int b;
b = 2;

变量的类型

类型 声明
整型 int
浮点数 float
字符型 char
布尔类型 bool

例题1

尼克爷爷的岁数,爸爸的岁数和他自己的岁数是3个等差的自然数,每两个数恒差25,已知尼克为11岁,那么请输出他们的岁数

Answer

#include <iostream>

using namespace std;

int main(){
    int a = 11;

    a += 25;
    cout << "尼克爸爸的岁数为:" << a  << endl;

    a += 25;
    cout << "尼克爷爷的岁数为:" << a << endl;

    return 0;
}

运算符

类型 声明
取余数运算 %
赋值运算 =
取整运算 /

例题2

输入一个三位数,输出它各个数位之和

Answer

#include <iostream>

using namespace std;

int main(){
    //获得一个三位数
    int number;
    cin >> number;

    int a = number % 10;  //获得一个个位数
    int b = number / 10 % 10;   //获得十位数
    int c = number / 100 ;  //获得百位数

    int sum = a + b + c;

    cout << "位数相加之和为:" << sum << endl;
    return 0;
}

选择结构

IF语句的结构组成

if (condition){
	pass1;	//满足条件所要执行的语句
}else{
	pass2;	//不满足条件所要执行的语句
}

比较运算符

符号 意义
> 大于
< 小于
== 判断两边是否相等
>= 大于等于
<= 小于等于
!= 不等于

例题1

输入一个数,判断是不是偶数,如果是偶数就输出“偶数”

Answer

#include <iostream>

using namespace std;

int main(){
    int number;
    cin >> number;

    if (number % 2 == 0){
        cout << "是偶数" << endl;
    }else{
        cout << "不是偶数" << endl;
    }
}

逻辑运算符

符号 意义
&& 与运算
|| 或运算
! 非运算

优先级排列:非→与→或

例题2

给分数进行评比,80分以上为优秀

三项都是优秀的评为:“新三好”

只有两项是优秀的评为:“双优生”

Answer

#include <iostream>

using namespace std;

int main(){
    int a,b,c;
    cin >> a >> b >> c ;

    if(a>80 && b >80 && c >80){
        cout << "新三好" << endl; 
    }else{
        if (a>80 && b > 80 || a>80 && c >80 || b > 80 && c >80){
            cout << "双优生" << endl;
        }else
            cout << "都不是" << endl;
    }

    return 0;
}

例题3

输入4个数,输出其中最大的数

Answer

#include <iostream>

using namespace std;

int main(){
    int a,b ,c ,d ;
    int max = 0;

    cin >> a >> b >> c >> d;

    if (a > max) max = a;
    if (b > max) max = b;
    if (c > max) max = c;
    if (d > max) max = d;

    cout << "最大的数字为:" << max << endl;
}

例题4

一道两位数加法运算题:

第一步,由计算机产生两个两位数;

第二步,输出题目,如:"45+78=";

第三步,输入答案;

第四步,判断答案是否正确

Answer

#include <iostream>
#include <ctime>
#include <cstdlib> 

using namespace std;

int main(){
	int a,b,c;
	srand(time(0));	//设置随机种子 
	
	a = rand()%100;
	b = rand()%100;
	
	cout << "请计算下列式子的值:" << a << "+" << b << "=" << endl;
	
	cout << "请输入答案:";
	
	cin >> c;
	
	if (a + b == c){
		cout << "计算正确" << endl;
	}else{
		cout << "计算错误" << endl;
	}
	 
}

rand()    获取一个随机数

产生[a,b]之间的随机数   rand()%(b-a+1)+a

循环结构

for循环语句

for (循环变量赋初值;循环条件;循环变量增值)
	语句;

while循环语句

while(表达式){
	语句;
}

例题1

狐狸老师站在中间,小朋友们围成一圈玩游戏,狐狸老师说:“5朵”,小朋友们就立刻5人为一组抱在一起,剩余的小朋友就要表演节目。若全班有43人,规定狐狸老师报的数智能是2,3,4,...,10,算一算每次会剩下几个小朋友表演节目?

Answer

#include <iostream>

using namespace std;

int main(){
    int i,n;
    
    for(i = 2 ;i <= 10;i++){
        n = 43%i;
        cout << i << "人一个小组,";
        cout << "剩下" << n << "人表演" << endl;
    }

    return 0;
}

例题2

求出 1 * 2 + 2 * 3 + 3 * 4 + 4 * 5 + ... + 100 * 101

Answer

#include <iostream>

using namespace std;

int main(){
	int sum = 0; 
	for (int i =1 ;i<=100; i++){
		sum = sum + i * (i + 1) ;
	}
	
	cout << sum << endl;
}

例题3

尼克参加了多次信息学比赛,在最近一次比赛时发现,如果这次比赛他得了98分,那么他所有比赛的平均分是92分,如果这次得了78分,他的平均分是87分,尼克共参加了多少次比赛?

Answer

#include <iostream>

using namespace std;

int main(){
	int i = 1;
	
	while (92 * i - 98 != 87 * i - 78){
		i++;
	}
	
	cout << "总共参加了" << i << "次比赛";
}

C++中的数组

类型名称   数组名[ 常量表达式 ];
//定义一个一维数组
int a[10];

//初始化一维数组
int b[3]={1,2,3};
int b[] ={2,3,4,5};

数组的定义

数组的使用

访问数组元素使用:数组名[下标]

数组的下标从0开始

int a[4]={1,2,3,4};

cout << a[0]  << endl;	//输出a数组的第一个元素

例题1

风之巅小学有48间教师,每间教室有2扇门,用1-96分别编号。有一天,狐狸老师把所有的门都打开,第二个到校的同学把所有编号为2的倍数的房门做相反的处理(把关上的打开,把开着的关闭),第三个到学校的的同学把所有是3的倍数的房门做相反的处理...第42个到校的尼克把所有编号是42的倍数的房门作相反的处理。问最后共有几扇门是开着的?分别是哪几扇?

#include <iostream>

using namespace std;

int main(){
	    bool a[97];
    int sum=0;

    for (int i =1 ;i<97;i++){
        a[i] = true; //打开所有门
    }

    for (int i = 2;i<=42;i++){
        int j = 1;
        while( i * j <= 96 && j < 97 ){
        	a[i*j] = !a[i*j];
            j++;
        }
    }

    for(int i =1 ;i<97;i++){
        if (a[i])
            sum++;
    }

    cout << "共有" << sum << "扇门打开";
    
    return 0;
}

例题2

利用数组的方式输入5个整数,输出最小的数

#include <iostream>

using namespace std;

int main(){
	int a[5],min=100000;
	
	for(int i = 0; i<5;i++){
		cin >> a[i];
	}
	
	for(int i = 0; i<5; i++){
		if (a[i] < min){
			min = a[i];
		}
	}
	
	cout << "最小的值为:" << min << endl;
	
	return 0;
}

查找和排序算法

Level2_0_C++程序设计知识点梳理

By yang he

Level2_0_C++程序设计知识点梳理

  • 228