一维数组相关例题
找最大值、数组逆序、冒泡排序😃
- 找一维数组内元素的最大值
#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循环嵌套即可实现。