IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> Массивы, С
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Задание :
-------------------
Даны итоги выборов в Думу города. По К округам известно число голосовавших за представителей М партий. Считая, что от каждого округа в Думу проходит по одному представителю, составить алгоритм и программу, которые определяют, какая партия провела наибольшее число своих кандидатов (предполагая, что все кандидаты набрали разное число голосов).
------------------------------------
Это задачу мне надо переделать из Паскаля в Си, но возникают ошибки..

Вот задача в Паскале :

Program z;
const
K=5;
M=4;
Results: array[1..K,1..M] of integer=
(
(2,1,3,4),
(7,1,5,2),
(4,1,2,5),
(8,1,8,8),
(2,1,6,3)
);
Var
Party: array[1..M] of integer;
i,j:integer;
maxParty,Posmax:integer;
begin
for i:=1 to K do begin
Posmax:=1;
for j:=2 to M do
if Results[i,j]>Results[i,Posmax]
then Posmax:=j;
Inc(Party[Posmax]);
end;
maxParty:=1;
for i:=2 to M do
if Party[i]>Party[maxParty]
then maxParty:=i;
writeln('Party#', maxParty);
readln;
end.



А вот попытка сделать её в Си :


#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int main()
{
const int K=5;
const int M=4;
int Results[0..K][0..M]={ {2,1,3,4},
{7,1,5,2),
{4,1,2,5},
{8,1,8,8},
{2,1,6,3}
};
int Party[M];
int i,j;
int maxParty,Posmax;
for(i=1; i<K; i++)
Posmax=1;
for(j=2; j<M; j++)
{
if( Results[i][j]> Results[i,Posmax])
Posmax=j;
Party[Posmax]++;
}
maxParty=1;
for(i=2; i<M; i++)
{ if( Party[i]>Party[maxParty])
maxParty=i;

}

cout<<"Party#"<<maxParty<<endl;

return 0;
}


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Извините что вопрос не в тему , но всё же :
-------

Есть ли в С, С++ что нибудь наподобие множеств...или это дело надо объявлять через массив символов ?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Структуру программы зачем перековеркал?
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int main() {

const int K = 5;
const int M = 4;
int Results[K][M] = {
{2,1,3,4},
{7,1,5,2},
{4,1,2,5},
{8,1,8,8},
{2,1,6,3}
};

int Party[M] = {0};
int maxParty;

for(int i=0; i<K; i++) {
int Posmax = 0;
for(int j=1; j<M; j++)
if(Results[i][j] > Results[i][Posmax]) Posmax = j;

Party[Posmax]++;
}

maxParty = 0;
for(i=1; i<M; i++)
if(Party[i] > Party[maxParty]) maxParty = i;

cout << "Party #" << maxParty + 1 << endl;
return 0;
}

(проверялось на TC++ 3.0)

Насчет множеств - в C++ есть замена. В STL... Но это - смотря какой у тебя компилятор.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Спасибо за такой быстрый ответ, у меня компилятор TC++ 3.0 .


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Тогда о готовых решениях забудь - в TC++ 3.0 тебе придется все делать ручками...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Ну ничего..у меня тут ещё около 5 дисков лежат... good.gif Поставлю ещё что нибудь


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 24.10.2017 7:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"