И такс, полетели по ошибкам :
1) это две функции main() причем одна типа int, а вторая void (которая работает только в VS и возможно ещё каких экзотичных компиляторах), т.е. void main в C++ нельзя писать! Тем более их у вас две и не ясно где заканчивается какая.
2) структура внутри ф-и main, так можно делать, но не советую ибо по правилам структуризации и функцинального программирования, ф-я main должна быть розгружена, т.е. местить минимально кода.
И структура должна заканчиваться " ; "
3) функция f которая принимает не ясно что (s - это не тип, а объект), затем объявление странных переменных, зачем-то два одинаковых цикла которые и не нужны? что бы поменять местами два первых элемента цикл не нужен.
4) ненужный system(pause)
5) по тому как делать обмен, вобщем это уже сделали за вас, есть уже готовая ф-я swap, если же она вам не подходит, можете реализовать её самому, посмотрев реализацию в интернете.
1)
Program Partiii;
Var
n, NumParties, i, j, max: integer;
Count: array[1..10] of integer;
Names: array[1..10] of string;
Begin
writeln('количество партий: ');
read (NumParties);
for i:=1 to NumParties do
begin
if names[n]<>'' then
begin
max:=count[i];
n := i;
for j:=2 to NumParties do
begin
if count[j]>max then
begin
max := count[j];
n:=j;
end;
end;
writeln (names[n]);
count[n] := -1;
names[n] := '';
end;
end;
end;
end.
2) Алгоритм: вводятся данные в массив InList.
массив просматривается, при совпадении партии увеличивается счетчик.
Названия партий добавляются в список по мере встречаемости во входном массиве.
названия с точкой тоже подсчитываются. Дальше считается число действительных голосов, лпределяется процент. Если больше 7 - выводится. Процент недействительных голосов тоже выводится на общих основаниях.
Program Partiii;
const
m=2000;
Var
n, NumParties, i, j: integer;
InList: array[1..m] of integer; //входной список
s: string;
n: real;
t: boolean;
Names: array[1..10] of string; //список партий
Count: array[1..10] of integer; //количество голосов
Begin
NumParties := 1;
Names[1] := InList[1];
Count[1] := 1;
for i := 2 to M do
begin
s := InList[i];
t := false;
for j:=1 to NumParties do
begin
if s=Names[j] then
begin
t := true;
Count[j] := Count[j] + 1;
end;
end;
if (t = false) then //партия встретилась первый раз. добавляем в список
begin
NumParties := NumParties +1;
Count[NumParties] := 1;
Names[NumParties] := InList[i];
end;
end;
for j:=1 to NumParties do if Names[j] <> '.' then n := n + Count[j]; //общее количество голосов без '.'
for j:=1 to NumParties do
begin
if Names[j] <> '.' then
begin
n1 := Count[j]/n; //% по партии
if n1 >= 7 then writeln (Names[j]);
end
else
begin
n1 := Count[j]/n;
writeln ('недействительных голосов: ', n1, ' %');
end;
end;
end;
end.
На первое задание ответ письменно не дашь так что сорян ...... могу сказать что нажимаете F9 и вводите значение которые вам нужны
Var i,n,hi,kol:integer;
begin
kol:=0;
for i:=1 to n do //Задаем цикл
begin
readln(hi); //Вбиваем рост претендента
if hi>=170 then //Проверяем, соответствует ли его рост условию
kol:=kol+1; //Счетчик кол-ва подходящих под условие претендентов
end;
end.