Вопрос по информатике:
Дана программа на языке Паскаль. Переделать её на язык С++
Var n, i, j, t: integer;
Count, Names: array[1..16] of integer;
Begin
For i := 1 to 16 do
begin
Count[i] := 0;
Names[i] := i;
end;
ReadLn(N); {
Считываем количество голосов}
for i:=1 to N do
begin
ReadLn(t); {
считали очередную пару}
Count[t] := Count[t] + 1;{
подсчитываем её}
end;
{Сортируем массивы
Names и Count в порядке убывания
значений массива
Count}
for i:=16 downto 2 do
for j:=2 to i do if Count[j-1]<Count[j] then
begin
t:=Count[j]; Count[j]:=Count[j-1]; Count[j-1]:=t;
t:=Names[j]; Names[j]:=Names[j-1]; Names[j-1]:=t;
end;
for i:=1 to 16 do
if Count[i] > 0 then
writeLn(Names[i], ' ', Count[i]);
end.
- 12.02.2018 16:04
- Информатика
- remove_red_eye 17017
- thumb_up 43
Ответы и объяснения 2
#include
using namespace std;
int main()
{
int Count[16],Names[16];
for (int i=0; i<16; i++)
{
Count[i] = 0;
Names[i] = i + 1;
}
int n,t;
cin >> n;
for (int i=1; i<=n; i++)
{
cin >> t;
Count[t] = Count[t] + 1;
}
for (int i=15; i>0; i--)
for (int j=1; j if (Count[j-1] < Count[j])
{
t = Count[j]; Count[j] = Count[j-1]; Count[j-1] = t;
t = Names[j]; Names[j] = Names[j-1]; Names[j-1] = t;
}
for (int i=0; i<16; i++)
if (Count[i] > 0)
cout <
}
Только при вводе t помни, что индексация массив в С++ начинается с нуля, соответственно последний элемент будет иметь индекс N-1.
- 14.02.2018 15:52
- thumb_up 12
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.