Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инициализация структуры, содержащий в себе струк. Инициализация структуры 
V
    Опции темы
yurk84
Дата 8.6.2010, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Здравствуйте, уважаемые Форумчане! Мне необходимо проинициализировать структуру, содержащую в себе ещё одну структуру. Приведу конкретный пример, где и как это необходимо сделать. Речь идёт о занесении 240 футбольных результатов, записанных по принципу 30 туров X 8 пар, где пара это  структура из 8 объектов, содержащих 4 поля, а именно: строку1(команда хозяин поля), строку2(команда гость поля), число(голы хозяев), число(голы гостей ). Приведу своё код инициализации. Подскажите, что не так. Для уменьшения кода заносятся результаты 3-ёх туров(а так потом будет 30). Заранее спасибо за помощь.

Код

struct All_results
{
   struct Result_tour
   {
      char hozyain[20];
      char gost[20];

      int goals_in;
      int goals_out;
   }
};

struct All_results Tour[2] =
{
   {
      { "Spartak_M",      "Dinamo",    0, 1 },
      { "Alania",         "Saturn",    1, 1 },
      { "Rubin",          "Lokomotiv", 2, 0 },
      { "Sibir",          "Terek",     0, 2 },
      { "Rostov",         "Tomj",      0, 2 },
      { "Anzhi",          "Spartak_N", 0, 0 },
      { "Krylya_Sovetov", "Zenit",     0, 1 },
      { "CSKA",           "Amkar",     1, 0 },
   },

   {
      { "Tomj",           "Rubin",          0, 1 },
      { "CSKA",           "Dinamo",         0, 0 },
      { "Zenit",          "Spartak_M",      1, 1 },

      { "Lokomotiv",      "Krylya_Sovetov", 3, 0 },
      { "Saturn",         "Sibir",          1, 1 },
      { "Terek",          "Rostov",         1, 1 },
      { "Amkar",          "Anzhi",          1, 0 },
      { "Spartak_N",      "Alania",         2, 1 },
   },

   {
      { "Rostov",         "Saturn",         1, 0 },
      { "Rubin",          "Terek",          0, 0 },
      { "Spartak_M",      "Lokomotiv",      2, 1 },
      { "Dinamo",         "Zenit",          1, 2 },
      { "Krylya_Sovetov", "Tomj",           2, 3 },
      { "Sibir",          "Spartak_N",      0, 2 },
      { "Anzhi",          "CSKA",           1, 2 },
      { "Alania",         "Amkar",          0, 0 },
   }
};

PM MAIL Skype   Вверх
djamshud
Дата 8.6.2010, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



>struct All_results Tour[>>>2<<<]
бздынь!

И самое главное. Вам нужна не структура в структуре (само по себе это бессмысленно), а массив (туры) массивов (пары) структур (результаты). Если я ничего не напутал конечно.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
yurk84
Дата 8.6.2010, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



А как будет выглядеть объявление и инициализация в Вашем случае? Напишите, если нетрудно  smile 
PM MAIL Skype   Вверх
djamshud
Дата 8.6.2010, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Код

struct FootBallSuxx{
char server[256], client[256];
int in,out;
};

struct FootBallSuxx teems[30][8]={
  {
    { "Spartak_M",      "Dinamo",    0, 1 },
    ... x8
  },
  ... x30
};


Это сообщение отредактировал(а) djamshud - 8.6.2010, 21:33


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
toxx
Дата 8.6.2010, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



yurk84
А не пробовали из файла эти данные в структуру считывать?
Всеравно откуда-то копипастите эти данные, всёже проще чем вручную набирать сидеть.

Добавлено через 2 минуты и 15 секунд
djamshud
смотрю вы футбол обожаете?)
Код

struct FootBallSuxx

PM MAIL   Вверх
djamshud
Дата 8.6.2010, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Да, я не большой фанат ногомяча. И еще suxx очень хорошо вписывается в стилистику этого слова:).

Это сообщение отредактировал(а) djamshud - 8.6.2010, 21:40


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
yurk84
Дата 8.6.2010, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Проверьте меня, пожалуйста всё ли я правильно сделал, как Вы мне посоветовали, а то компилятор опять ругается на "too may inicializators" причём 3 раза!  smile 
Код

struct All_results
{
   char hozyain[20];
   char gost[20];

   int goals_in;
   int goals_out;
};

struct All_results Tour[7][2] =
{
   {
      { "Spartak_M",      "Dinamo",    0, 1 },
      { "Alania",         "Saturn",    1, 1 },
      { "Rubin",          "Lokomotiv", 2, 0 },
      { "Sibir",          "Terek",     0, 2 },
      { "Rostov",         "Tomj",      0, 2 },
      { "Anzhi",          "Spartak_N", 0, 0 },
      { "Krylya_Sovetov", "Zenit",     0, 1 },
      { "CSKA",           "Amkar",     1, 0 },
   },

   {
      { "Tomj",           "Rubin",          0, 1 },
      { "CSKA",           "Dinamo",         0, 0 },
      { "Zenit",          "Spartak_M",      1, 1 },
      { "Lokomotiv",      "Krylya_Sovetov", 3, 0 },
      { "Saturn",         "Sibir",          1, 1 },
      { "Terek",          "Rostov",         1, 1 },
      { "Amkar",          "Anzhi",          1, 0 },
      { "Spartak_N",      "Alania",         2, 1 },
   },

   {
      { "Rostov",         "Saturn",         1, 0 },
      { "Rubin",          "Terek",          0, 0 },
      { "Spartak_M",      "Lokomotiv",      2, 1 },
      { "Dinamo",         "Zenit",          1, 2 },
      { "Krylya_Sovetov", "Tomj",           2, 3 },
      { "Sibir",          "Spartak_N",      0, 2 },
      { "Anzhi",          "CSKA",           1, 2 },
      { "Alania",         "Amkar",          0, 0 },
   }
};

PM MAIL Skype   Вверх
djamshud
Дата 8.6.2010, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



>struct All_results Tour[ >>>7<<< ][ >>>2<<< ]

Бздынь! Бздынь! Потому и too may inicializators.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
yurk84
Дата 8.6.2010, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Цитата(djamshud @ 8.6.2010,  22:21)
>struct All_results Tour[ >>>7<<< ][ >>>2<<< ]

Бздынь! Бздынь! Потому и too may inicializators.

Цитата

>struct All_results Tour[ >>>7<<< ][ >>>2<<< ]

Бздынь! Бздынь! Потому и too may inicializators.


А в чём собственно, проблема, поясните, пожалуйста?
PM MAIL Skype   Вверх
djamshud
Дата 8.6.2010, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



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


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
yurk84
Дата 8.6.2010, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Цитата(djamshud @ 8.6.2010,  22:27)
Вы говорите, что положите туда семь раз по два раза порций данных, а кладете три раза по весемь раз.

Во-первых, насколько я знаю индексация массива начинается от нуля, а во-вторых, я только что написал 8 на 3, а "too many..." никуда не делся! Что-то похожее у меня было и моим собственным первоначальным кодом.
PM MAIL Skype   Вверх
toxx
Дата 8.6.2010, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



yurk84
так их 3 по 8 о0
PM MAIL   Вверх
yurk84
Дата 8.6.2010, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Цитата(toxx @ 8.6.2010,  22:42)
yurk84
так их 3 по 8 о0


Спасибо, toxx! Только не пойму почему 3 на 8, а не 2 на 7?

Это сообщение отредактировал(а) yurk84 - 8.6.2010, 22:47
PM MAIL Skype   Вверх
toxx
Дата 8.6.2010, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



Цитата

Так тогда в чём проблема? Чем недоволен комп.? Что я не так делаю? 

вы думаете одно, а пишите ему совсем другое
Код

struct All_results
{
   char hozyain[20];
   char gost[20];
   int goals_in;
   int goals_out;
};
struct All_results Tour[3][8] = // <<<<<комп хочет этого
{
   {
      { "Spartak_M",      "Dinamo",    0, 1 },
      { "Alania",         "Saturn",    1, 1 },
      { "Rubin",          "Lokomotiv", 2, 0 },
      { "Sibir",          "Terek",     0, 2 },
      { "Rostov",         "Tomj",      0, 2 },
      { "Anzhi",          "Spartak_N", 0, 0 },
      { "Krylya_Sovetov", "Zenit",     0, 1 },
      { "CSKA",           "Amkar",     1, 0 },
   },
   {
      { "Tomj",           "Rubin",          0, 1 },
      { "CSKA",           "Dinamo",         0, 0 },
      { "Zenit",          "Spartak_M",      1, 1 },
      { "Lokomotiv",      "Krylya_Sovetov", 3, 0 },
      { "Saturn",         "Sibir",          1, 1 },
      { "Terek",          "Rostov",         1, 1 },
      { "Amkar",          "Anzhi",          1, 0 },
      { "Spartak_N",      "Alania",         2, 1 },
   },
   {
      { "Rostov",         "Saturn",         1, 0 },
      { "Rubin",          "Terek",          0, 0 },
      { "Spartak_M",      "Lokomotiv",      2, 1 },
      { "Dinamo",         "Zenit",          1, 2 },
      { "Krylya_Sovetov", "Tomj",           2, 3 },
      { "Sibir",          "Spartak_N",      0, 2 },
      { "Anzhi",          "CSKA",           1, 2 },
      { "Alania",         "Amkar",          0, 0 },
   }
};

PM MAIL   Вверх
djamshud
Дата 8.6.2010, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



В объявление массива никак не связано с его индексацией. Нужно указывать количество ячеек массива.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1709 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.