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

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

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

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

12.03.2014, 20:52. Просмотров 956. Ответов 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;
      }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 20:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить количество забитых и пропущенных каждой командой мячей. (C++):

Определить игру с максимальной разницей забитых и пропущенных мячей - C++
Условие задачи: дано N пар однозначных чисел. Первое число каждой пары означает количество мячей, забитых футбольной командой в игре,...

Считать с файла информацию о команде "Название" "Город", количество побед, поражений, ничьих, забитых и пропущенных мячей - C++
Здравствуйте. Необходимо написать программу С++ : &quot;Считать с файла информацию о команде &quot;Название&quot; &quot;Город&quot;, количество побед, ...

В одном массиве записано количество мячей заброшенных баскетбольной командой в каждом из 15 матчей - C++
помогите решить задачу на С++ 3/3 В одном массиве записано количество мячей заброшенных баскетбольной командой в каждом из 15 матчей, в...

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

Вывести рейтинг футболистов по количеству забитых мячей - C++
Условие даю просто что бы было понятно о чем прога, так как проблема не в нем. Условие задачи: Футбольная команда выиграла 3 матча. По...

Вычислить суммарное количество очков, набранных каждой командой по результатам игры - C++
результаты игры квн, в которой принимали участие 3 команды и проводилось 5 конкурсов, сохранены в двумерном массиве. Написать...

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

Учет очков, набранных каждой командой при игре в баскетбол - C++
буду благодарен! Составить программу, которая ведет учет очков, набранных каждой командой при игре в баскетбол. Количество очков,...

Определить количество каждой из цифр 0,1,2...9 в числе N^N. - C++
Пожалуйста, помогите разобраться с задачей. Определить количество каждой из цифр 0,1,2...9 в числе N^N.

Определить количество слов в каждой строке - C++
Задание было следующее: Определить количество слов в каждой строке. Сделать выбор в меню: 1- ввести строки с клавиатуры. 2-ввести...

Определить количество повторений каждой из цифр в числе - C++
1)Фишка может двигатся по полю длины N только вперёд.Длина хода фишки не более K. Найти число различных путей, по которым фишка может...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
12.03.2014, 21:56
Ответ Создать тему
Опции темы

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