Используя датчик случайных чисел, заполнить массив из двадцати элементов неповторяющимися числами. как делать?)) все что я пока написал srand(time(0)); const int n = 20; int m[n]; for (int i = 0; i < n; i++) { m = rand() % 10; cout << m << ""; } if ()
Вот, должно работать) если нет, то отпишись: #include <iostream> #include <ctime> using namespace std; int main () { setlocale (LC_CTYPE, "Russian"); int array1 [20]; cout<<"Заполните массив, неповторяюищимися числами: \n"; for (int i = 0; i < 20; i++) { cin>>array1 [i]; for ( int i_1 = 1; i - i_1 > 0; i_1++) { if (array1 [i] == array1 [i - i_1]) { i--; cout<<"Такое число уже было, повторите ввод: "; } } } for (int i = 0; i < 20; i++) { cout<<array1 [i]<<" "; } } Код #include <iostream> #include <ctime> using namespace std; int main () { setlocale (LC_CTYPE, "Russian"); int array1 [20]; cout<<"Заполните массив, неповторяюищимися числами: \n"; for (int i = 0; i < 20; i++) { cin>>array1 [i]; for ( int i_1 = 1; i - i_1 > 0; i_1++) { if (array1 [i] == array1 [i - i_1]) { i--; cout<<"Такое число уже было, повторите ввод: "; } } } for (int i = 0; i < 20; i++) { cout<<array1 [i]<<" "; } }
Ну, вот вся главная функция. Где именно не понятно? setlocale (LC_CTYPE, "Russian"); int array1 [20]; cout<<"Заполните массив, неповторяюищимися числами: \n"; for (int i = 0; i < 20; i++) { cin>>array1 [i]; for ( int i_1 = 1; i - i_1 > 0; i_1++) { if (array1 [i] == array1 [i - i_1]) { i--; cout<<"Такое число уже было, повторите ввод: "; } } } for (int i = 0; i < 20; i++) { cout<<array1 [i]<<" "; } Код setlocale (LC_CTYPE, "Russian"); int array1 [20]; cout<<"Заполните массив, неповторяюищимися числами: \n"; for (int i = 0; i < 20; i++) { cin>>array1 [i]; for ( int i_1 = 1; i - i_1 > 0; i_1++) { if (array1 [i] == array1 [i - i_1]) { i--; cout<<"Такое число уже было, повторите ввод: "; } } } for (int i = 0; i < 20; i++) { cout<<array1 [i]<<" "; }
Делали подобное на Си, вот решение void generate_rnd_array(int * destinationArray, int count) { int number, i; int * cache = (int*)calloc(count, sizeof(int)); for (i = 0; i < count; i++) { cache[i] = 0; } printf("test"); srand(time(NULL)); printf("test2"); for (i = 0; i < count; i++) { do { number = rand() % count; } while (cache[number] != 0); cache[number] = 1; destinationArray[i] = number; } printf("test3"); } Код void generate_rnd_array(int * destinationArray, int count) { int number, i; int * cache = (int*)calloc(count, sizeof(int)); for (i = 0; i < count; i++) { cache[i] = 0; } printf("test"); srand(time(NULL)); printf("test2"); for (i = 0; i < count; i++) { do { number = rand() % count; } while (cache[number] != 0); cache[number] = 1; destinationArray[i] = number; } printf("test3"); } printf для дебага, можешь убрать
for ( int i_1 = 1; i - i_1 > 0; i_1++) { if (array1 == array1 [i - i_1]) { i--; cout<<"Такое число уже было, повторите ввод: ";