C++学习心得第一期 分支 循环 数组

本文详细介绍C++中的分支结构、循环及数组操作等基础知识,包括三目运算符使用、多条件判断练习、各种循环实例(如猜数字游戏、水仙花数查找)以及数组的基本操作与排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

第二天学习心得


一、分支结构

1、三目运算符

通过三目运算符实现简单的判断

#include<iostream>
using namespace std;
int main()
{
	int a = 0;
	int b = 9;
	int c = 10;
	a= b > c ? b : c;
	cout << a << endl;
	//C++中三目运算符返回的是变量,可以继续赋值
	(a > b ? a : b) = 100;
	cout << a << endl;
	system("pause");
	return 0;
}

2、循环练习

提示用户输入一个高考考试分数,根据分数做如下判断
分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科;
在一本分数中,如果大于700分,考入北大,大于650分,考入清华,大于600考入人大。

#include<iostream>
using namespace std;
int main()
{
	int score = 0;
	cout << "请输入你的分数" << endl;
	cin >> score;
	if (score > 600)
	{
		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;
	}



	system("pause");
	return 0;
}

3、Switch-Case 练习

注意1:switch语句中表达式类型只能是整型或者字符型‘

注意2:case里如果没有break,那么程序会一直向下执行
总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间

#include<iostream>
using namespace std;
int main()
{
	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;
	}



	system("pause");
	return 0;
}

二、循环练习

1.猜数字(while)

系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏。

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
	//产生随机种子
	srand((unsigned int)time(NULL));
	//系统生成随机数
	int num = rand() % 100 + 1;
	while (1)
	{
	
		//玩家进行猜测
		cout <<"请进行猜测" << endl;
		int val = 0;
		cin >> val;
		//判断玩家的猜测

		if (num == val)
		{
			cout << "猜对了"<< endl;
			//猜对 退出游戏
			break;
		}
		//猜错 提示猜错或者猜对重新返回第二步
		else
		{
			if (num < val)
			{
				cout <<"猜大了" << endl;
			}
			else
			{
				cout <<"猜小了" << endl;
			}
		}
	
	}

	system("pause");
	return 0;
}

2.水仙花数(do while)

水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
	//设置循环的范围是所有的3位数
	//使每个位置上的数字立方和是数字本身
	int num = 100;
	do
	{
		//获取个位  十位  百位
		int ge = num % 10;
		int shi = (num / 10) % 10;
		int bai = num / 100;
		if (ge*ge*ge+bai*bai*bai+shi*shi*shi==num)
		{
			cout << num<< endl;
		}
		num++;
	} while (num<1000);

	system("pause");
	return 0;
}

3.敲桌子(for)

从1开始数到数字100, 如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
	for (int i = 1;i<=100;i++)
	{
		if (i/10==7||i%10==7||i%7==0)
		{
			cout <<"敲桌子" << endl;
		}
		else
		{
			cout <<i << endl;
		}
	}
	system("pause");
	return 0;
}

4,乘法口诀(双重for)

利用嵌套循环,实现九九乘法表

#include<iostream>
using namespace std;
int main()
{
	//输出乘法口诀 双重for 循环
	for (int r = 1;r<=9;r++)
	{
		for (int c=1;c<r+1;c++)
		{
			cout << c << "*" << r << "=" << c*r<< "\t";
		}
		cout << endl;
	}
	system("pause");
	return 0;
}

三、数组联系

1.一维数组名应用

可以统计整个数组在内存中的长度
可以获取数组在内存中的首地址
直接打印数组名,可以查看数组所占内存的首地址
对数组名进行sizeof,可以获取整个数组占内存空间的大小

#include<iostream>
using namespace std;
int main()
{
	int arr[10] = {1,2,3,4,5,6,7,8,9,10};
	cout << "数组所占的内存空间" << sizeof(arr) << endl;
	cout <<"每个元素所占的内存空间" << sizeof(arr[0])<<endl;
	cout << "数组元素个数" <<sizeof(arr)/sizeof(arr[0]) << endl;

	cout <<"数组首地址为" << (int)arr<< endl;
	cout <<"数组首元素地址"<<(int)&arr[0] << endl;
	cout << "数组第二个元素的地址"<<(int)&arr[1] << endl;
	system("pause");
	return 0;
}

2.冒泡排序

比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
重复以上的步骤,每次比较次数-1,直到不需要比较

#include<iostream>
using namespace std;
int main()
{
	int arr[9] = { 5, 8, 2, 4, 1, 9, 7, 3, 6};
	for (int i = 0;i<9-1;i++)
	{
		for (int j = 0;j<9-1-i;j++)
		{
			if (arr[j]>arr[j + 1])
			{
				int temp=0;
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
	for (int i = 0;i<9;i++)
	{
		cout <<arr[i] << endl;
	}
	system("pause");
	return 0;
}

3.二维数组名的应用

查看二维数组所占内存空间
获取二维数组首地址
二维数组名就是这个数组的首地址
对二维数组名进行sizeof时,可以获取整个二维数组占用的内存空间大小

#include<iostream>
using namespace std;
int main()
{
	int arr[2][3]=
	{
		{1,2,3},
		{4,5,6}
	};

	cout <<"二维数组的大小"<< sizeof(arr) << endl;
	cout << "二维数组一行的大小" << sizeof(arr[0])<< endl;
	cout << "二维数组元素的大小" <<sizeof(arr[0][0]) << endl;

	cout <<"二维数组的行数" <<sizeof(arr)/sizeof(arr[0]) << endl;
	cout <<"二维数组的列数" <<sizeof(arr[0])/sizeof(arr[0][0]) << endl;

	cout <<"二维数组的首地址" <<(int)arr << endl;
	cout << "二维数组第一行的地址" <<(int)arr[0] << endl;
	cout << "二维数组第二行的地址" <<(int)arr[1] << endl;

	cout <<"二维数组第一个元素的地址" <<(int)&arr[0][0] << endl;
	cout <<"二维数组第二个元素的地址" <<(int)&arr[0][1] << endl;


	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值