Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 3

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

12.03.2014, 20:52. Показов 6703. Ответов 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)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.03.2014, 20:52
Ответы с готовыми решениями:

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

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

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

3
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
12.03.2014, 21:00
Psychoman54, для решения данной задачи вам достаточно создать 2 переменные типа ofstream и ifstream, и структуру, которая будет содержать 3 вектора - название команд, кол-во забитых голов, кол-во пропущенных голов, а в вашей программе используется 100500 переменных, в которых запутаться как два пальца сами знаете что ...
1
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 3
12.03.2014, 21:30  [ТС]
Fene4ka_, а как из строки вытащить целочисленную переменную?
Заранее спасибо.
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
12.03.2014, 21:56
Лучший ответ Сообщение было отмечено Psychoman54 как решение

Решение

Psychoman54, каждый символ имеет код ASCII, по коду аски вы можете вытащить любую цифарку
например:
C++
1
2
char k = '0';
int x = int(k-48);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.03.2014, 21:56
Помогаю со студенческими работами здесь

В одном массиве записано количество мячей, забитых футбольной командой в каждой из 20-ти игр, в другом – коли
В одном массиве записано количество мячей, забитых футбольной командой в каждой из 20-ти игр, в другом – количество пропущенных мячей в...

Определить, в скольких играх разность забитых и пропущенных мячей больше трёх
3.Результат игр по футболу хранятся в массиве.Каждые три последовательных элемента массива содержат соответственно номер игры,кол-во...

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

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

Известно количество мячей, забитых футбольной командой за каждую игру в двух чемпионатах,
Известно количество мячей, забитых футбольной командой за каждую игру в двух чемпионатах, которое хранится в двух массивах. В каждом из...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru