一维数组相关例题
找最大值、数组逆序、冒泡排序😃
- 找一维数组内元素的最大值
#include<iostream>
using namespace std;
int main() {
//找最大值最大值
int arr[] = {300,350,200,400,250};
int max = 0;
for (int i=0;i<5;i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
cout << "最大值为" << max << endl;
system("pause");
return 0;
}
- 数组逆序
#include<iostream>
using namespace std;
int main() {
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int temp;
int start = 0;
int end = sizeof(arr) / sizeof(arr[0]) - 1;
cout << "变换前:" << endl;
for (int i=0;i<10;i++)
{
cout << arr[i] << endl;
}
while (start < end)
{
temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
cout << "变换后:" << endl;
for (int i = 0; i < 10; i++)
{
cout << arr[i] << endl;
}
system("pause");
return 0;
}
注意:交换代码的使用:
temp = arr[start]; arr[start] = arr[end]; arr[end] = temp;
- 冒泡排序
#include<iostream>
using namespace std;
int main() {
int arr[] = {1,4,8,6,10,3,5,7,9};
int num = sizeof(arr) / sizeof(arr[0]);
int temp;
//总共排序的轮数=元素个数-1
for (int i = 0; i < num - 1; i++)
{
//内层循环对比 次数=元素个数-当前轮数-1
for (int j = 0; j < num - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < num; i++)
{
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
注意:重点理解冒泡排序的思路与原理,原理图如下
排序了多少轮:总共排序的轮数=元素个数-1
内层循环对比:次数=元素个数-当前轮数-1
内层循环对比:次数=元素个数-当前轮数-1
使用两个for循环嵌套即可实现。
查看8道真题和解析
深信服公司福利 839人发布