目录
练习案例1:五只小猪称体重
案例描述:一组数据中记录了五只小猪的体重,找出并打印最重的小猪
#include<iostream>
using namespace std;
int main()
{
//用数组保存五只小猪的体重,找到最重的并打印
int arr[5] = { 100,520,412,85,765 };
int j = 0;
for (int i = 0; i < 5 ; i++)
{
if (arr[i] > j)//比较并找出最重的小猪
{
j = arr[i];//把体重赋值给j
}
}
cout << "最重的小猪为 :" << j << endl;
system("pause");
return 0;
}
结果:
练习案例2:数组元素逆置
案例描述:声明一个五元素的数组,并将其逆置([1,2,3,5,4]——[4,5,3,2,1])
分析:每次交换头尾两个数,然后依靠自增和自减向内移动,并再次交换
#include<iostream>
using namespace std;
int main()
{
//元素逆置
int arr[5] = { 1, 2, 3, 5, 4 };
cout << "数组逆置前的样子:" << endl;
for (int i = 0; i < 5; i++)
{
cout<< arr[i];
}
cout << endl;
int start = 0;//起始元素下标
int end = sizeof(arr) / sizeof(arr[0]) - 1;//末尾元素下标
int tem = 0;//中间元素
while(start < end)//当前面的数组下标没有后面的数组下标大的时候执行
{
tem = arr[start];//将end和start的数据互换
arr[start] = arr[end];
arr[end] = tem;
start++;//开始往后交换
end--;
}
cout << "数组逆置后的样子 :" << endl;
for (int i = 0; i < 5; i++)
{
cout << arr[i];
}
cout << endl;
system("pause");
return 0;
}
结果如下:
练习案例3:冒泡排序
作用:最常用的排序算法,对数组内的元素进行排序
- 比较相邻的元素,如果第一个比第二个大,则交换他们的位置
- 对每一对相邻元素做同样的操作,执行完毕后,找到第一个最大值
- 重复以上步骤,每次比较的数量-1,直到不需要比较为止
如:把 {240571389}从大到小重新排列
#include<iostream>
using namespace std;
int main()
{
//冒泡排序
int arr[9] = { 2,4,0,5,7,1,3,8,9 };
cout << "排序前的数字 :" << endl;
for (int i = 0; i < 9; i++)
{
cout << arr[i] << " ";
}
cout << endl;
//开始冒泡排序
//外层循环—排序轮数:元素个数-1
int num1 = sizeof(arr) / sizeof(arr[0]) - 1;//元素个数-1
for (int j = 0; j <num1; j++)
{
//内层循环—对比个数:元素个数-排序轮数-1
int num2 = sizeof(arr) / sizeof(arr[0]) - j - 1;
for (int u = 0; u < num2; u++)
{
if (arr[u] > arr[u + 1])//如果前一个数字比后一个大,交换顺序
{
int temp = arr[u ];
arr[u] = arr[u + 1];
arr[u + 1] = temp;
}
}
}
cout << "冒泡排序后 :" << endl;//再次输出冒泡排序后的结果
for (int i = 0; i < 9; i++)//i只在for循环里定义,不会干扰到外面的i(最上面i)
{
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
结果如下:
建议大家手动尝试下冒泡排序,听说这是面试必问之一(手动狗头,我也不太清楚)