Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Psychoman54
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 3
#1

Определить количество забитых и пропущенных каждой командой мячей. - C++

12.03.2014, 20:52. Просмотров 809. Ответов 3
Метки нет (Все метки)

После проведения спортивных соревнований, например, по футболу, и организаторы, и участники, и зрители особенно
интересуются различной статистикой. Количество набранных командами очков позволяет определить победителя, разница
забитых и пропущенных мячей — разрешить неоднозначности при подведении итогов, количество и динамика количества
побед и поражений той или иной команды — определить качество подготовки игроков в разные периоды турнира. Вам
предлагается написать программу, считающую эту статистику.
Вам необходимо по данному списку команд, участвовавших в турнире, и списку игр, которые они провели между
собой, определить количество забитых и пропущенных каждой командой мячей.

Формат входного файла
В первой строке входного файла input.txt находится одно натуральное число n (1 ≤ n ≤ 10) — количество команд,
участвовавших в чемпионате. В следующих n строках перечислены названия этих команд. Каждое название команды
находится в отдельной строке и является словом, состоящим только из строчных и заглавных букв латинского алфавита.
Длина названия команды не превосходит 10, все названия команд различны.
В следующей строке входного файла находится одно целое число m (1 ≤ m ≤ 100) — количество матчей, которые
команды сыграли за время чемпионата. Следующие m строк содержат результаты матчей.
Каждое описание матча содержится в отдельной строке. Описание матча состоит из названия первой команды, после
которого через пробел следует счет матча. Счет матча — два числа, не превышающих 10, разделенные двоеточием. После
счета матча через пробел дано название второй команды.
Гарантируется, что в матчах участвовали только команды, перечисленные в списке участников, и то, что команды,
участвовавшие в матче, всегда различны.

Формат выходного файла
Выведите в выходной файл output.txt m строк, каждая из которых содержит название команды и количество забитых и
пропущенных этой командой мячей. Между названием команды и количеством мячей должен стоять ровно один пробел, а
между количеством забитых мячей и количеством пропущенных — ровно одно двоеточие. Команды перечислите в том же
порядке, в котором они перечислены во входном файле.

Пример входных и выходных данных

input.txt

3
CSKA
Zenit
Spartak
4
Zenit 3:2 CSKA
Spartak 0:1 Zenit
Spartak 1:1 CSKA
CSKA 0:0 Zenit


output.txt

CSKA 3:4
Zenit 4:2
Spartak 1:2



Объясните пожалуйста в где у меня ошибка

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
      FILE *f;
      int a,b,c,d,k=0,s=0,win[10],los[10],i,match,u,p,r,l,n;
      char j [10] [80],ma[80],k1[80],k2[80];
      for (i=0;i<10;i++){
          win[i]=0;
          los[i]=0;
          }
      f=fopen("C:/Dev-Cpp/bin/input.txt", "r");
      b=fscanf(f,"%d\n",&a);
      for (i=0;i<a;i++){
          b=fscanf(f,"%s\n",j[i]);
          }
      b=fscanf(f,"%d\n",&match);
      for (i=0;i<match;i++){
             b=fscanf(f,"%s",&ma);
             strcpy(k1,ma);
             b=fscanf(f,"%s",&ma);
             r=ma[2];
             l=ma[0];
             b=fscanf(f,"%s",&ma);
             strcpy(k2,ma);
             if (r==l)
                              break;
                              else{
                              for (u=0;u<a;u++){
                                        n=strcmp(k1,j[u]);
                                        c=strcmp(k2,j[u]);
                                   if (l > r){
                                             if (n==0)
                                                  win[u]+=1;
                                             if (c==0)
                                                  los[u]+=1;
                                             }
                                   else{
                                                             if (c==0)
                                                                           win[u]+=1;
                                                             if (n==0)
                                                                           los[u]+=1;
                                                                           }
                                                                           }
                                                                           }
                                                                           }                                                                      
      fclose(f);
      f=fopen ("C:/Dev-Cpp/bin/output.txt","w");
      for (i=0;i<a;i++){
          fprintf(f,"%s %s:%s\n",j[i],win[i],los[i]);
      }
      fclose(f);
      return 0;
      }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 20:52     Определить количество забитых и пропущенных каждой командой мячей.
Посмотрите здесь:

В одном массиве записано количество мячей заброшенных баскетбольной командой в каждом из 15 матчей C++
Определить количество повторений каждой из цифр в числе C++
C++ Определить количество каждой из цифр 0,1,2...9 в числе N^N.
Вычислить суммарное количество очков, набранных каждой командой по результатам игры C++
C++ Определить игру с максимальной разницей забитых и пропущенных мячей
C++ Считать с файла информацию о команде "Название" "Город", количество побед, поражений, ничьих, забитых и пропущенных мячей
Определить количество слов в каждой строке , начинающихся на C++
Определить количество слов в каждой строке текста C++
Учет очков, набранных каждой командой при игре в баскетбол C++
C++ Определить количество слов в каждой строке
C++ Вывести рейтинг футболистов по количеству забитых мячей
C++ Одномерные массивы с информацией о забитых и пропущенных мячах

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fene4ka_
87 / 87 / 16
Регистрация: 24.01.2014
Сообщений: 1,196
12.03.2014, 21:00     Определить количество забитых и пропущенных каждой командой мячей. #2
Psychoman54, для решения данной задачи вам достаточно создать 2 переменные типа ofstream и ifstream, и структуру, которая будет содержать 3 вектора - название команд, кол-во забитых голов, кол-во пропущенных голов, а в вашей программе используется 100500 переменных, в которых запутаться как два пальца сами знаете что ...
Psychoman54
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 3
12.03.2014, 21:30  [ТС]     Определить количество забитых и пропущенных каждой командой мячей. #3
Fene4ka_, а как из строки вытащить целочисленную переменную?
Заранее спасибо.
Fene4ka_
87 / 87 / 16
Регистрация: 24.01.2014
Сообщений: 1,196
12.03.2014, 21:56     Определить количество забитых и пропущенных каждой командой мячей. #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Psychoman54, каждый символ имеет код ASCII, по коду аски вы можете вытащить любую цифарку
например:
C++
1
2
char k = '0';
int x = int(k-48);
Yandex
Объявления
12.03.2014, 21:56     Определить количество забитых и пропущенных каждой командой мячей.
Ответ Создать тему
Опции темы

Текущее время: 23:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru