Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Ребят всем привет, помогите с кодом. В каком блоке выводить на консоль условие в случае проверки.

У пользователя запрашивается начальное значение генератора и число для поиска, которые вводятся через пробел.

Одномерный массив из 10 элементов нужно инициализировать случайными значениями от 0 до 20 . Вывести исходный массив на консоль, отделяя элементы знаком табуляции.

Затем нужно найти самую левую позицию введенного числа в массиве. Если такого числа в массиве нет, то нужно вывести "no" и закончить программу. Если же число в массиве найдено, то отсортировать элементы справа от него по возрастанию, а слева - по убыванию. Само число должно остаться на месте. Вывести преобразованный массив на консоль с новой строки, отделяя элементы знаком табуляции.

Sample Input 1:

17 10
Sample Output 1:

712215196148
no
Sample Input 2:

33 13
Sample Output 2:

19150161363181120
19161501336111820

#include
#include
using namespace std;
int main(int argc, char* argv[]) {
// put your code here
const int N = 10; int a[N];
int x;
cin >> x;
srand(x);
for (int i{}; i < N; i++){
a[i] = rand() % 21;
cout << a[i] << "\t";
}
cout << '\n';
int elem;
cin >> elem;
int find = -1;
for(int k=N-1;k>0;k--){
for(int i=0;ia[i+1]){
int tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;

}

}
}
for(int k=N-1;k>find+1;k--){
for(int i=find+1;ia[i+1]){
int tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
}
}

for (int i = 0; i < N; i++){
if (a[i] == elem) { find = i; break; }

}
if (find == -1) {cout <<"NO";}

return 0;
}

По дате
По рейтингу
Аватар пользователя
Новичок

Почему вводятся два числа?

17 10

и

33 13

Что такое 33?

#include <algorithm>
#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
int main() {
uniform_int_distribution<> uid(0, 20);
mt19937 gen{ random_device()() };
auto rand = [&]() { return uid(gen); };
int box[10];
generate(begin(box), end(box), rand);
int m, n;
cin >> m >> n;
auto show = [](int x) { cout << setw(4) << x; };
for_each(begin(box), end(box), show);
puts("");
auto pos = find(begin(box), end(box), n);
if (pos == end(box)) puts("no");
else {
sort(begin(box), pos, greater<>());
sort(pos + 1, end(box));
for_each(begin(box), end(box), show);
puts("");
}
system("pause > nul");
}