在本教程中,我们将讨论将数组转换为锯齿形的程序。
为此,我们将提供一个包含不同元素的数组。我们的任务是与上一个元素相比,以更大或更小的元素以Z字形方式重新排列给定数组的元素。
#include <iostream>
using namespace std;
//转换成锯齿形的时尚
void convert_zigzag(int arr[], int n) {
//标志表示更大或更小的关系
bool flag = true;
for (int i=0; i<=n-2; i++) {
if (flag) {
if (arr[i] > arr[i+1])
swap(arr[i], arr[i+1]);
} else {
if (arr[i] < arr[i+1])
swap(arr[i], arr[i+1]);
}
flag = !flag;
}
}
int main() {
int arr[] = {4, 3, 7, 8, 6, 2, 1};
int n = sizeof(arr)/sizeof(arr[0]);
convert_zigzag(arr, n);
for (int i=0; i<n; i++)
cout << arr[i] << " ";
return 0;
}输出结果
3 7 4 8 2 6 1