Автор Тема: Малко помощ за една програмка за С++  (Прочетена 1212 пъти)

suxxx

  • Напреднали
  • *****
  • Публикации: 13
    • Профил
Здравейте,написъл съм една примерна задачка на С++,но нещо не иска да се компилира.Моля ви ако някой знае каде съм допуснъл грешка да ми каже '<img'>?
БЛАГОДАРЯ !!!

ЗАДАЧА:
Да се състави компютърна програма за информационно обслужване на Европ. първенство по футбол.В него участват 16 отбора,като във всеки отбор има по 23 състезатели.

А) За всеки футболист да се въведе следната информация:
 -имена:име,презиме и фамилия в един низ,не по дълъг от 60 знака,в който имената са разделени с точно един интервал;
 -номер на фанелка,с която играе участника - число между 1 и 23.Да се извърши контрол на въведените номера
 -име на държавата,която представлява отбора:низ не по дълъг от 30 знака.
 -брой на изиграните срещи в нац. отбор: цяло положително число;
 -брой вкарани голове: цяло неотрицателно число;

Б)Да се изведе класиране на голмайсторите,подредени в низходящ ред на вкараните от тях голове.Ако има участници с един и същ резултат, по-напред в класирането е участникът,чиийто фамилно име е по-дълго;

В)Да се пресметне и изведе средно аритметичният брой на изиграните срещи в националните отбори - S на всички участници в първенството.Да се изведе и списък на всички държави,в които има поне трима участници с резултати по-големи от S.

Примерен код

//Решение

#include <iostream>
#include <string>

using namespace std;

struct EU {
 char name[60];
 char team;
 int noumber;
 int nf;
 char country[30];
 int meetings;
 int goals;
 };
EU b[100];
EU temp;

void sort(int m);
void sortprint(int m);
void sprint(int m);
void sreturn(int m);
void count(int m);

int main() {
 for (int i=1;i<=16;i++) {
  cout << "Dyrjava na otbora";
  cin.getline(b[i].country,30);
  cout << "Otbor";
  cin >> b[i].team;
  for (int i=1;i<=23;i++) {
  cout << "Ime na fytbolist";
  cin.getline(b[i].name,60);
  cout << "Nomer na fanelka";
  cin >> b[i].nf;
  cout << "Broi izigrani creshti v nac. otbor";
  cin >> b[i].meetings;
  cout << "Broi vkrarani golove";
  cin >> b[i].goals;
  }
 }

cout << "\n\n";
sort(i);
sortprint(i);
cout << "\n\n";
sprint(i);
cout << "\n\n";
count(i);

return 0;
 }
 
 
void sort(int m) {
  for (int i=0;i<=m-2;i++)
  for (int j=i+1;j<=m-1;j++) {
  if (b[i].goals < b[j].goals) {
  temp=b[i];b[i]=b[j];b[j]=temp;
  }
  if (b[i].goals==b[j].goals)
  if (b[i].name > b[j].name) {
  temp=b[i];b[i]=b[j];b[j]=temp;
  }
 }
}

void sortprint(int m) {
 for (int i=0;i<=m-1;i++) {
 cout << b[i].name << " " << b[i].goals;
 }
}
  
void sprint(int m) {
 double sum=0;s=0;
 for (int i=0;i<=m-1;i++) {
 sum=sum+b[i].meetings;
 s=sum/m;
 cout << "S=" << s;
 }
}

double sreturn(int m) {
 double sum=0;s=0;
 for (int i=0;i<=m-1;i++) {
 sum=sum+b[i].meetings;
 s=sum/m;
 return (s);
 }
}
  
void count(int m) {
 for (int i=0;i<=m-3;i++)
 for (int j<=i+1;j<=m-2;j++)
 for (int k<=i+1;k<=m-1;k++) {
 if ((strcmp(b[i].country,b[j].country))==0 && (strcmp(b[j].country,b[k].country))==0)
 if (b[i].name > sreturn(m) && b[j].name > sreturn(m) && b[k].name > sreturn(m))
 cout << b[i].country;
 }
}
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Малко помощ за една програмка за С++
« Отговор #1 -: Jul 05, 2005, 16:50 »
Доста важно беше и да дадеш изхода на компилатора - съобщенията за грешки и т.н. ...
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Малко помощ за една програмка за С++
« Отговор #2 -: Jul 05, 2005, 17:57 »
Пич, програмката майката си трака, честно казано.

Сега първо като декларираш променливи се прави така
Примерен код
double d1 = 0, d2 = 0;

а не така
Примерен код
double d1 = 0; d2 = 0;


Второ, някои функции си ги декларирал в началото на файла да връщат void, а долу при дефинициите връщат double.

-- редакция --
Трето - ВИНАГИ, имам предвид ВИНАГИ слагай тялото на if, for, while, do, else (и каквото още ти хрумне) в {}!!!
-- редакция --

Докарах го до такова положение:

Примерен код

[sasoiliev@bgsofh9dev171 cpp1]$ g++ -o c cpp.cpp
cpp.cpp: In function `void count(int)':
cpp.cpp:98: error: invalid operands of types `char[60]' and `double' to binary `operator>'
cpp.cpp:98: error: invalid operands of types `char[60]' and `double' to binary `operator>'
cpp.cpp:98: error: invalid operands of types `char[60]' and `double' to binary `operator>'
[sasoiliev@bgsofh9dev171 cpp1]$



Не издържах да проверя по каква причина сравняваш char[60] с double - това ти ще си го прецениш...
Активен

suxxx

  • Напреднали
  • *****
  • Публикации: 13
    • Профил
Малко помощ за една програмка за С++
« Отговор #3 -: Jul 05, 2005, 19:02 »
Много ви благодаря за услилията,защото наистина много ама много грешки съм допуснал но пък си ги оправих вече.И още веднъж БЛАГОДАРЯ !!!
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Малко помощ за една програмка за С++
« Отговор #4 -: Jul 06, 2005, 14:07 »
np '<img'>
Активен