【声明引用: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;
}