vladimyrgorbunov
?>

Заполнить случайными числами в диапазоне от 1 до 10 массив a[n]. найти в получившемся массиве наиболее часто встречающееся число. если таких чисел несколько, то вывести наименьшее из них. вывести на экран сам массив и получившееся число. протестировать программу на трёх произвольных тестах, доказав правильность её работы.

Информатика

Ответы

Кириллов57
Значит так: мы создаем массив избыточной длины, куда потом будем записывать рандомные числа. Так же мы создаем массив-счетчик b (у него индексами являются сами числа, а элементами - количество этого числа в массиве А), куда будет присваиваться, сколько раз нам встречается то или иное число (перед этим мы массив обязательно обнулим). В конце мы смотрим максимальное число из массива-счетчика. Вуаля!

Вот пример программы на паскале ABC:

var a:array [1..1000000] of integer; 
b:array [1..10] of longint;   
c:integer;   
i,max,n:longint;
begin
write('Введите число элементов массива: ');
readln(n); 
max:=0; 
for i:=1 to 10 do 
b[i]:=0; 
for i:=1 to n do  begin 
a[i]:=random(10)+1; 
write(a[i],' '); 
b[a[i]]:=b[a[i]]+1 
end; 
for i:=1 to 10 do if b[i]>max then 
begin 
c:=i; 
max:=b[i] 
end; 
writeln; 
writeln('Чаще всего в массиве встречается число ',c)
end.
llmell6

Первый раз мы вводим нечётные элементы (1, 3, 5, 7, ..):

const  N = 10;  { число элементов массива }var  a: array[1..N] of integer;  i: integer; begin  for i := 1 to N do    if (i mod 2 <> 0) then    begin      Write('a', i, ' = ');      Read(a[i]);    end;end.

Второй раз - чётные:

const  N = 10; { число элементов массива } var  a: array[1..N] of integer;  i: integer; begin  for i := 1 to N do    if (i mod 2 = 0) then    begin      Write('a', i, ' = ');      Read(a[i]);    end;end.

Вся разница состоит в условии при вычислении остатка при целочисленном делении (mod). Если при делении на 2 число равно нулю, то оно чётное, иначе нечётное.

Сорокина

Буду работать на примере с языком программирования С++, но почти также работают и другие языки.

Пункт 1

/*тип_массива*/ /*название_массива*/[/*количество_элементов*/] - статический массив.

Например

int arr[5];

int arr[arrMaxValue] = {0}; // всё заполняется нулями

Пункт 2Например

char yourName[numberSymbolOfName]; // массив символов

Пункт 3Например

for(int i = 0; i < sizeof(yourName) / sizeof(char); i++) {

cin >> yourName[i]; // 'I', 'v', 'a', 'n'

}

sizeof(yourName) / sizeof(char) определит размер массива.

Пункт 4

for(int j = 0; j < sizeof(yourName)/sizeof(char); j++) {

       std::cout << yourName[j] << ' ';  // I v a n

}

Пункт 5

for(int i = 0; i < sizeof(arr)/sizeof(int); i++) {

       std::cin >> arr[i];

       if((arr[i] % 2) == 0) {

               Sum += arr[i];

       }

}

Пункт 6

for(int i = 0; i < sizeof(arr)/sizeof(int); i++) {

       std::cin >> arr[i];

       if(arr[i] == 20) {

               std::cout << "yep!" << ' ';

               break; // так как одна двадцатка есть и больше не надо, выходим из цикла

       }

}

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Заполнить случайными числами в диапазоне от 1 до 10 массив a[n]. найти в получившемся массиве наиболее часто встречающееся число. если таких чисел несколько, то вывести наименьшее из них. вывести на экран сам массив и получившееся число. протестировать программу на трёх произвольных тестах, доказав правильность её работы.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

kgrechin
atvkaprolon
alex-kuzora4411
федороа
anchutk3016
alex-kuzora4411
markitandl
Tatyana1426
irina-mic
Алексей424
Kalugin Vyacheslavovna605
igor8809337
Сорокина
evgeniipetrosov
artemiusst