Показать выходные данные в соответствии с 3 правилами (нечетные, четные, сортировка) - массивы
Я попытался написать следуйте этим спецификациям:
1. У меня есть массив почитать от пользователей
2. нечетные числа должны быть в начале
3. четные числа должны быть в конце массива
4. сортировка по возрастанию нечетного и четного чисел
Это мой код.:
Что я уже пробовал:
#include <stdio.h> #include <stdlib.h> int n; int main(void){ scanf("%d", &n); int arr[n], aux[n], count = 0; for(int i = 0; i < n; i++){ scanf("%d", &arr[i]); } for(int i = 0; i < n; i++){ if(arr[i] % 2 != 0){ aux[i] = arr[i]; count = i; } else { aux[n - i - 1] = arr[i]; } } for(int i = 0; i < count; i++){ if( aux[i] > aux[i+1]) { aux[i] = aux[i] + aux[i+1]; aux[i+1] = aux[i] - aux[i+1]; aux[i] = aux[i] - aux[i+1]; } } for(int i = count; i < n; i++){ if( aux[i] > aux[i+1]) { aux[i] = aux[i] + aux[i+1]; aux[i+1] = aux[i] - aux[i+1]; aux[i] = aux[i] - aux[i+1]; } } for(int i = 0; i < n; i++){ printf("%d ", aux[i]); } printf("\n"); return 0; }
Но вывод неверен. Например, если я ввел размерность массива 4, а элементы массива равны 4 3 2 1, то выход будет:2 4196800 1 4196832, но я хочу быть 1 3 2 4. Можете ли вы мне помочь? Спасибо!