Тема: Random без повторів
// Random без повторів
// Random without repetitions
// Створюєм массив int array1[ROW * COLUMN + 1]
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Random без повторів
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
// Random без повторів
// Random without repetitions
// Створюєм массив int array1[ROW * COLUMN + 1]
#include <iostream>
#include <math.h>
#include <cstdlib>
#include <stdio.h>
#include <cstdio>
//#include <unistd.h> // for use sleep();
#include <string>
#include <algorithm>
#include <iomanip>
#include <cmath>
//#include <conio.h> //for linux no work
using namespace std;
int main(int argc, char* argv[])
{
for (int t = 0; ; ++t)
{
// Завдання 1:
cout << "Program 1." << endl;
char s = 0;
const int ROW = 8, COLUMN = 6;
int MAS[ROW][COLUMN];
int array1[ROW * COLUMN + 1]; // create an array in which the index array1 [k] will be stored 0 or 1
int k; // proper index [k]
for (int g = 0; g < ROW*COLUMN + 1; g++) {
array1[g] = 0;
} // reset the array
srand(time(NULL));
for (int t = 0; t < ROW; t++)
{
for (int j = 0; j < COLUMN; j++)
{
//uniqueness check
while (true)
{
k = rand() % 52 + 1;
if (array1[k] == 0) {
array1[k] = 1; MAS[t][j] = k;
break;
}
}
cout << setw(4) << MAS[t][j] << " ";
}
if (i == (ROW / 2 - 1) ) {
cout << endl;
cout << "----------------------------------";
}
cout << endl;
}
//cout << endl;
cout << "----------------------------------\n";
cout << "Enter symbol Q to exit, to continue press 0: ";
cin >> s;
cout << endl;
if (s == 'q')
{
cout << "Exit!" << endl;
break;
}
}
cout << endl;
return 0;
}
У С++ немає гедерів <math.h> та <stdio.h>, аналогічні бібліотеки звуться <cmath> та <cstdio>. Але їх теж використовувати варто обмежено.
Що ж до алгоритму, то вам слід сформувати масив із числами від 0 до 51, а потім випадково витягати число з цього масиву, замінювати його на останній елемент масиву і запам'ятовувати, що довжина скоротилася.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися