Zig-Zag Array Arrangement Using Adjacent Swap (C Program)
C
Medium
4 views
Problem Description
The array is to be arranged in a zig-zag pattern: small-large-small-large - condition to swap adjacent elements by adding them?
Official Solution
#include <stdio.h>
int main() {
int arr[100], n, i;
printf("Enter number of elements: ");
scanf("%d", &n);
printf("Enter array elements:n");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// Zig-zag arrangement
for (i = 0; i < n - 1; i++) {
if (i % 2 == 0) {
// Even index: arr[i] < arr[i+1]
if (arr[i] > arr[i + 1]) {
arr[i] = arr[i] + arr[i + 1];
arr[i + 1] = arr[i] - arr[i + 1];
arr[i] = arr[i] - arr[i + 1];
}
} else {
// Odd index: arr[i] > arr[i+1]
if (arr[i] < arr[i + 1]) {
arr[i] = arr[i] + arr[i + 1];
arr[i + 1] = arr[i] - arr[i + 1];
arr[i] = arr[i] - arr[i + 1];
}
}
}
printf("Zig-zag arranged array:n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
Solutions (0)
No solutions submitted yet. Be the first!
No comments yet. Start the discussion!