• Дана программа на языке Паскаль. Переделать её на язык С++

    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.

Ответы 2

  • Надоело при копировании из блокнота вручную ставить пробелы. Бред.
  • #include <iostream>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<i; 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 <<Names[i] <<' ' <<Count[i] <<endl;    return 0;}Только при вводе t помни, что индексация массив в С++ начинается с нуля, соответственно последний элемент будет иметь индекс N-1.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years