Заполните одномерный массив так, чтобы все его элементы были различны - C (СИ)
Формулировка задачи:
парни кто может помочь, а лучше написать программку???
вот задание "заполните одномерный массив так, чтобы все его элементы были различны. Размеры массива возьмите произвольно"
очень нужно!!! всем заранее спасибо!!!
вот так правильно???
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
const N=15;
int a[N], x, i, f;
void main()
{
randomize();
do
{
f=0;
a[i]=random(100);
for(int j=1; j<=i-1; j++)
{
if(a[j]==a[i]) f=1;
}
if(f==0) i=i+1;
}while (i<N);
for (i=0; i<N; i++)
printf ("%3d ", a[i]);
getch();
}Решение задачи: «Заполните одномерный массив так, чтобы все его элементы были различны»
textual
Листинг программы
int number=0;
for(int i=0; i<max_size; i++){
srand(time(NULL));
number=rand%10;
for (int j=0; j<max_size; j++){
if (Mas[j]!=number)
Mas[i]=number;
}
}
Объяснение кода листинга программы
- Переменная
numberинициализируется значением 0. - Запускается цикл
forдля заполнения массиваMas. - Внутри цикла
forинициализируется переменнаяsrandс помощью функцииtime(NULL). - Затем в переменной
numberиспользуется оператор%для получения остатка от деления на 10. - В случае, если в массиве
Masесть элемент с таким же значением, как уnumber, то значениеnumberне присваивается ни одному элементу массива. - Если такого элемента нет, то значение
numberприсваивается элементу массива с индексомi. - Цикл
forпродолжается до тех пор, пока не будет выполнено условиеi<max_size.