Доброго времени суток всем! Нужно в введённом пользователем массиве отсортировать числа так, чтобы сначала шли чётные числа по возрастанию, а за ними нечётные по убыванию. Входные числа должны быть от 2 до 10000. Проблема такова: Если ввести первое число нечётное, то оно так и будет на выходе стоять первым( хотя должно быть чётное ). Вторым числом зачастую ставится ноль. В общем, проблема состоит в первых двух числах на выходе. `
#include <iostream>
using namespace std;
int main() {
setlocale (LC_ALL, "Russian");
int n;
tryAgain:
cout <<"Введите число от 2 до 10000"<<endl; cin >> n;
if(n>=2 && n<=10000){
int *arr=new int[n];
for(int i=0;i<n;i++)
cin >> arr[i];
for (int i=n; i>0; i--)
for (int j=n; j>1; j--)
if(arr[j]%2==0 && arr[j-1]!=0)
swap(arr[j], arr[j-1]);
cout<<endl;
for (int i=0; i<n; i++)
cout<<arr[i];
cout<<endl;
for (int i=0; i<n; i++)
for(int j=0;j<n-1;j++)
if(arr[j]%2!=0 && arr[j+1]%2!=0){
if(arr[j]<arr[j+1])
swap(arr[j], arr[j+1]);
}else if((arr[j]%2==0 || arr[j]==0) && (arr[j+1]%2==0 || arr[j+1]==0))
if(arr[j]>arr[j+1])
swap(arr[j], arr[j+1]);
cout<<endl;
for (int i=0; i<n; i++)
cout<<arr[i]<<" ";
} else goto tryAgain;
return 0;
}
`
А если воспользоваться sort
с соответствующим компаратором?
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
bool comp(int l, int r)
{
if (l%2 < r%2) return true;
if (l%2 > r%2) return false;
if (l%2 == 0 && r%2 == 0) return l < r;
if (l%2 == 1 && r%2 == 1) return l > r;
return false;
}
int main(int argc, const char * argv[])
{
vector<int> v;
for(int i = 0; i < 400 ; ++i)
v.push_back(rand()%10000);
sort(v.begin(),v.end(),comp);
for(auto i: v) cout << i << " "; cout << endl;
}
Если самому надо писать - опять же, воспользуйтесь этим компаратором и не мучьтесь...
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Как можно сделать так,дабы символ в консольке считывался сразу после ввода,без нажатия Enter?Не хочу пользоваться _getch,ибо приходится подключать...
Want to improve this question? Update the question so it's on-topic for Stack Overflow на русском
В Visual Studio при разработке проектов на winapi есть возможность упаковки ресурсов через файлrc
Всем доброго времени сутокВозможно глупый вопрос, но: Есть класс Manager