Предмет: Информатика,
автор: okindallard
крайний вопрос(!). :)
заполните массив из N элементов случайными числами в интервале от 1 до N так, чтобы в массив обязательно вошли все числа от 1 до N. (постройте случайную перестановку).
язык программирования С++.
Ответы
Автор ответа:
1
#include <iostream>
using namespace std;
void swap(int i, int j, int a[])
{
int t = a[i];
a[i] = a[j];
a[j] = t;
}
int main()
{
int n, s1 = 0, s2 = 0, n1 = 0, n2 = 0;
cin >> n;
int a[n];
srand(time(0)); // инициализируем датчик
// заполняем массив подряд от 1 до n
for(int i=0; i<n; i++)
a[i] = i + 1;
int np = min(rand() % n, 5); // случайное количество перестановок
for(int i=1; i<=np; i++)
swap(rand()%(n), rand()%(n), a);
for(int i=0; i<n; i++)
cout << a[i] << " ";
return 0;
}
Похожие вопросы
Предмет: Литература,
автор: Аноним
Предмет: Математика,
автор: zarinausmanaeva
Предмет: Русский язык,
автор: therorf
Предмет: География,
автор: mityakholod
Предмет: Математика,
автор: АлинаДзулиева