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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переменная в идентификаторе переменной. 
:(
    Опции темы
.talisman
Дата 21.5.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Значит так. Существует 20 символьных массивов с именами a1, a2, a3, a4... Существует переменная quan, которая содержит значение от 1 до 20, о есть число, которое показывает сколько массивов будет использованно. Она задаётся пользователем в ходе выполнения программы.
Суть в следующем. Нужно прочитать с клавиатуры имена участников, причем заранее не известно сколько их всего. Делать двадцать условий не рационально, а вот как сделать это в цикле я немного не понимаю. Нужно чтобы в операторе ввода scanf запись производилось в переменную имя которой меняется динамически. по типу "a<i+1>", где i является инкрементом цикла и преобразовывалась заранее, чтобы при выполнении записи вместо "a<i+1>" было написанно, например, "а5".

Кусок кода:
Код
for(i=0; i<quan; i++)
{
    printf("Enter name of member number %i: ", i+1);
    scanf("%s", ?вопрос? );
}


если это не возможно, то подскажите как это реализовать. может быть через многомерный массив? или через структуры?
заранее спасибо.
PM MAIL   Вверх
sergejzr
Дата 21.5.2005, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



через лист делай smile
Код не компилировал и не проверял smile
Код

#include <iostream.h>
#include <stdlib.h>
#include <string.h>

struct player
{
    char* name;
    player*next;
};

player* newPlayer(char*name)
{
    player *newP=new player;
    newP->next=NULL;
    newP->name=new char(strlen(name));
    memcpy(newP->name,name,strlen(name)+1);
    return newP;
}
void main()
{
    char *input=new char[256];//Переменная для чтения имён.

    cout<<"first player"<<endl;
    cin>>input;
    player *first=newPlayer(input); //закладываем первого игрока с зачитанным именем
    player *tmp=first; //темп игроу у нас первй.

    while(true)
    {
        cout<<"next player"<<endl;
        cin>>input;
        if(strcmp(input,"end")==0) //если юзер написал end, заканчиваем игру. Все игроки есть :)
            break;
        tmp->next=newPlayer(input);//а если задал имя, то закладываем новую структуру с этим именем как следующего игрока 
        tmp=tmp->next; //пересаживаем темпа на него
    }

    tmp=first;
    //распечатываем лист пока следующий не станет NULL
    while(tmp!=NULL)
    {
        cout<<tmp->name<<endl;
        tmp=tmp->next;
    }
}



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
.talisman
Дата 21.5.2005, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



sergej.z
что-то слишком сложно для меня =)
со списками только недавно начал работать, но всё равно пока трудновато.
про сиин и сиаун наслышан, но ни разу не использовал.
по проще никак? =)
или хотя бы каментов... smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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