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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> задачка в институте 
:(
    Опции темы
крыска
Дата 2.10.2004, 21:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











господа!
задача проста до безобразия но что то не идет
я описал неправильно функция SetName посмотрите пожалуйста что я неправильно сделал
Смысл задачи сперва программа запрашивает имя первого спорцмена потом второго после забега запрашивает первое время потом второго сравнивает и выводит победителя..
однако не идет..
что то я напартачила а времени нет разбираться.
помогите кому это 2х2
спасибо
тут мой код
http://users.evtek.fi/~k0102006/evtekII/AlgTr/include.htm
  Вверх
Peter
Дата 14.10.2004, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я по-фински не понимаю (хотя прабабушка была финка), но:
Код
void setName(Trunner *runner, const char *name){
                                        char sknames[30];
                                        printf("\n syota juoksijan nimi  ");
                                        scanf("%s  ",&sknames[0]);
                                        runner->name[30]=sknames[30];
}

Это как надо понимать?
Во-первых, входящий параметр name нигде не используется. Во-вторых, последнее присваивание означает, что несуществующий 31-й символ (по-сишному он имеет номер 30) строки sknames присваивается 31-му символу строки runner->name (опять-таки несуществующему).
Следовало бы сделать так:
Код
void setName(Trunner *runner, const char *name){
                                        strcpy(runner->name, name);
}

или
Код
void setName(Trunner *runner){
                                        char sknames[30];
                                        printf("\n syota juoksijan nimi  ");
                                        scanf("%s  ",&sknames[0]);
                                        strcpy(runner->name, sknames);
}

Дальше я не читал. Разберись пока с этим.


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
Dov
Дата 15.10.2004, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

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



Может быть что-то вроде этого:
Код
#include <stdio.h>

typedef struct
{
   int tun;
   int min;
}Ttime;

typedef struct
{
   char    name[30];
   Ttime   t;
}Trunner;

void    read_time(Ttime *a);
void    print_time(Ttime a);
int     vertailu(Ttime a1, Ttime a2);
void    setName(Trunner *runner);// tietue osoitin parametrina.
void    setTime(Trunner *runner, Ttime &time);
int     betterRunner(const Trunner runner1, const Trunner runner2);
void    displayRunner(const Trunner *runner);

void main(void)
{
   int     v;
   Trunner runner1, runner2;
   Ttime   time1, time2;

   setName(&runner1);
   setName(&runner2);
   setTime(&runner1, time1);      
   setTime(&runner2, time2);  

   v = betterRunner(runner1, runner2);

   if( v < 0 )
       displayRunner(&runner1);
   else if( v > 0 )
       displayRunner(&runner2);
   else
       printf("\nsama aika\n");
   //    getchar();
   //    getchar();
}

void setName(Trunner *runner)
{
   printf("syota juoksijan nimi: ");
   gets(runner->name);
}

void setTime(Trunner *runner, Ttime &time)
{
   read_time(&(runner->t));
}

int betterRunner(const Trunner runner1, const Trunner runner2)
{    
   int vert = vertailu(runner1.t, runner2.t);

   return vert;
}

void displayRunner(const Trunner *runner)
{
   printf("\n%s ", runner->name);
   print_time(runner->t);
}

//ADT for Ttime
void read_time(Ttime *a)
{
   printf("Syota tunnit  : ");
   scanf("%d", &a->tun);
   printf("Syota minuutit: ");
   scanf("%d", &a->min);
}

void print_time(Ttime a)
{
   printf("%d tun %d min\n", a.tun, a.min);
}

int vertailu(Ttime a1, Ttime a2)
{
   int tun_min1 = a1.tun * 60 + a1.min;
   int tun_min2 = a2.tun * 60 + a2.min;

   return tun_min1 - tun_min2;
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
gepard
Дата 16.10.2004, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



крыска
Навскидку:
Код

#include <stdio.h>
class RunnerCls
{
   public:
   RunnerCls();

   unsigned __int8 mins;
   unsigned __int8 secs;

};
RunnerCls::RunnerCls()
{
   mins=0;
   secs=0;
}
void main()
{
   RunnerCls runners[2];

   printf("\nEnter mins of first runner:");
   scanf("%d", &runners[0].mins);
   printf("\nEnter secs of first runner:");
   scanf("%d", &runners[0].secs);

   printf("\nEnter mins of second runner:");
   scanf("%d", &runners[1].mins);
   printf("\nEnter secs of second runner:");
   scanf("%d", &runners[1].secs);
   if (runners[0].mins>runners[1].mins)
       printf("Second Runner is Winner!");
   else
       printf("First Runner is Winner!");
    if (runners[0].mins==runners[1].mins)
        if (runners[0].secs>runners[1].secs)
            printf("Second Runner is Winner!");
        else
            printf("First Runner is Winner!");
}

mins - минуты
secs - biggrin.gif секунды biggrin.gif
Добавлено @ 10:49
Ой, нужно же было с именами... hehe.gif
Думаю сами сможете добавить, это не трудно

Это сообщение отредактировал(а) gepard - 16.10.2004, 11:20


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0661 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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