C++入门之1-1

【声明引用:C++学习实例问题来源github:Cpp-0-1-Resource-master】

C++入门级小程序

1.冒泡排序

/*
冒泡排序:最常用的排序算法,对数组内元素进行排序。(本例从小到大排序)
算法:
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。(因为交换了位置,所以每次去掉数组末尾的最大值即可)
2.对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。(每比较一轮,就找到一个最大值。)
3.重复以上的步骤,每次比较次数-1,直到不需要比较。
(每比较一轮之后,下一轮需要比较的数字就减少一个,故而需要比较的次数就减1)
例如: 将数组 { 5,4,2,8,0,5,7,1,3,9 } 进行升序排序。
本例实现:从键盘输入十个数字,组成一个待排序的数组。然后采用冒泡排序法进行排序。
*/
#include<iostream>
using namespace std;

int main() {
	int num[10];
	for (int i = 0; i <= 9;i++) {
		cin>>num[i];
	}
	//进行冒泡排序
	int max = 0;//定义一个存放最大值的临时变量

	for (int j = 0; j < 9; j++) //易错的地方j<9,不是<=;下一个循环同理。因为0-8即为9次。
	{
		//j=0即第一个比较轮回,10个数字总共应该比较9次,得出第一个最大数字;
		//j=1时,即第二轮找最大值,9个数字应该比较8次,得出第二个最大数字;以此类推。
		for (int i = 0; i < 9-j; i++) {
			//因为最大值放在数组最后一个位置,因此每次还是从数组开头即i=0处进行比较。
			if (num[i] >= num[i+1]) { 
				max = num[i]; 
				num[i] = num[i + 1]; 
				num[i + 1] = max;//这是将大值放在后面,最后形成的是从小到大的排列顺序
			}
		}
	}
	//最后输出排好序的数组:
	cout << "The sort is: " <<endl ;
	for (int i = 0; i <= 9; i++) {
		cout<<" "<<num[i];
	}
	system("pause");
	return 0;
}

2. 求三位数中的水仙花数

/*
三位数中的水仙花数:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。
1^3 + 5^3+ 3^3 = 153
此例用do……while循环语句实现寻找三位数中的水仙花数。
*/
#include<iostream>
#include<cmath>//数学函数库,此例中为了使用幂函数pow(x,y),即x的y次幂
using namespace std;
int main() {
	int a = 100; 
	int b = 0;
	int i = 0;
	do 
	{
		//根据水仙花的规则判断该数字是否为水仙花数
		b = pow(a / 100, 3) + pow(a % 100 / 10, 3) + pow(a % 100 % 10, 3);
		if (b == a) {
			cout << "第" << ++i << "个水仙花为:" << b << endl;
		}
		a++;
	}
	while(a<1000);

	system("pause");
	return 0;
}

3. 一维数组及go to语句练习

/*
一位数组练习:
1.
五只小猪称体重:
在一个数组中记录了五只小猪的体重,如:int arr[5] = {300,350,200,400,250};
找出并打印最重的小猪体重。
2.数组元素逆置
案例描述:请声明一个5个元素的数组,并且将元素逆置.
(如原数组元素为:1,3,2,5,4;逆置后输出结果为:4,5,2,3,1);
*/
#include<iostream>
using namespace std;
int main() {
	/*此处使用goto语句实现程序的跳转,从实例1到实例2*/
	int arr[5] = { 300,350,200,400,250 };
	int max = arr[0];
	goto Instance2;//跳转到第二个例程执行,goto语句不能放在第一条语句;
	for (int i = 1; i < 4; i++) {
		while(max < arr[i]) {
			max = arr[i];
		}
	}
	cout << "最重的体重为:" << max;


	//instance2 数组逆置例程开始
	Instance2:
	int num[5] = {1,2,3,4,5};
	int a = 0;
	for (int i = 0; i <= 1; i++) {
		a = num[i];
		num[i] = num[4-i];
		num[4 - i] = a;
	}
	for (int i= 0; i <= 4; i++) {
		cout<<" "<<num[i];
	}
	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值