Первые десять элементов массива a[30] отсортировать в порядке возрастания, а последние десять в порядке убывания Препод сказал изменить что-то в циклах, но догнать не могу int main () { srand(time(NULL)); const int size= 30; int a[size]; for (int i = 0; i < size; i++){ a[i] = rand() % 100; } for (int i = 0; i < size; i++){ cout << a[i] << " "; }; int min; for (int i = 0; i < 10; i++){ min=i; for (int j = i+1; j < size; j++){ if (a[i] > a[j]){ min=j; int buf = a[i]; a[i] = a[min]; a[min] = buf; } } } for(int i = 20;i<30;i++){ for(int j = i+1;j<size;j++){ if(a[i]<a[j]){ int buf = a[i]; a[i]=a[j]; a[j]=buf; } } } cout << endl << endl; for (int i = 0; i < size; i++){ cout <<a[i] << " "; } } Код int main () { srand(time(NULL)); const int size= 30; int a[size]; for (int i = 0; i < size; i++){ a[i] = rand() % 100; } for (int i = 0; i < size; i++){ cout << a[i] << " "; }; int min; for (int i = 0; i < 10; i++){ min=i; for (int j = i+1; j < size; j++){ if (a[i] > a[j]){ min=j; int buf = a[i]; a[i] = a[min]; a[min] = buf; } } } for(int i = 20;i<30;i++){ for(int j = i+1;j<size;j++){ if(a[i]<a[j]){ int buf = a[i]; a[i]=a[j]; a[j]=buf; } } } cout << endl << endl; for (int i = 0; i < size; i++){ cout <<a[i] << " "; } }
прикрепи полный код у тебя неверная логика сортировки. алгоритм такой: берешь первые 10 элементов и сортируешь, в твоем случае берутся больше почему то. и последние 10 элементов. код ниже прикреплю
#include <bits/stdc++.h> using namespace std; int main () { srand(time(NULL)); const int size = 30; int a[size]; for (int i = 0; i < size; i++){ a[i] = rand() % 100; } for (int i = 0; i < size; i++){ cout << a[i] << " "; }; int min; for (int i = 0; i < 10; i++){ min=i; for (int j = i+1; j < 10; j++){ if (a[i] > a[j]){ min=j; int buf = a[i]; a[i] = a[min]; a[min] = buf; } } } for(int i = 20;i<30;i++){ for(int j = i+1;j<30;j++){ if(a[i]<a[j]){ int buf = a[i]; a[i]=a[j]; a[j]=buf; } } } cout << endl << endl; for (int i = 0; i < size; i++){ cout <<a[i] << " "; } return 0; } C #include <bits/stdc++.h> using namespace std; int main () { srand(time(NULL)); const int size = 30; int a[size]; for (int i = 0; i < size; i++){ a[i] = rand() % 100; } for (int i = 0; i < size; i++){ cout << a[i] << " "; }; int min; for (int i = 0; i < 10; i++){ min=i; for (int j = i+1; j < 10; j++){ if (a[i] > a[j]){ min=j; int buf = a[i]; a[i] = a[min]; a[min] = buf; } } } for(int i = 20;i<30;i++){ for(int j = i+1;j<30;j++){ if(a[i]<a[j]){ int buf = a[i]; a[i]=a[j]; a[j]=buf; } } } cout << endl << endl; for (int i = 0; i < size; i++){ cout <<a[i] << " "; } return 0; } у тебя проблема в сортировке ты шел до сайза, нужно до 10 и с 20 по 30.