С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
maxistudent
0 / 0 / 0
Регистрация: 09.04.2010
Сообщений: 33
1

Не получается отладить функцию с указателями (структура)

24.02.2011, 21:41. Просмотров 403. Ответов 1
Метки нет (Все метки)

Никак не получается добиться работы программы. Нужно, чтобы программа выводила на экран место самого юного участника соревнований + имя и фамилию этого спортсмена. Кому не сложно, помогите с кодом, я запутался с указателями
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
#include <conio.h>
#include <string.h>
#include <stdio.h>
 
struct time
{int min; //минуты
 int sec; //секунды
};
 
typedef struct
{char name[20]; //имя
 char f_name[20]; //фамилия
 int age; //возраст
 time time; //результат
}athlete;
 
int* m_at(int k_athl);
 
void main()
{clrscr();
 int *place, k_athl, i, *m, *pt;
 athlete *point;
 athlete num[100];
 printf("\n Введите количество спортсменов: ");
 scanf("%i",&k_athl);
 printf("\n Введите имя, фамилию, возраст спортсменов, их результат: \n");
 m=m_at(k_athl);
 printf("\n Место %d",place);
 getch();
}
 
int* m_at(int k_athl)
{int i, *place;
 athlete num[100];
 athlete *point;
 for(i=0;i<k_athl;i++)
  {
   scanf("%s%s%d%d%d",&num[i].name,&num[i].f_name,&num[i].age,&num[i].time.min,&num[i].time.sec);
   printf("\n");
  }
 point=num;
 for(i=0;i<k_athl;i++)
    if(num[i].age < point -> age)point=&num[i];
 for(i=0;i<k_athl;i++)
  {
   if(num[i].time.min*60 +num[i].time.sec < point->time.min*60 +point->time.sec)place++;
  }
 return place;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2011, 21:41
Ответы с готовыми решениями:

Не получается разобраться с указателями
Всем доброго времени суток. Я читаю книгу Ричи и Керниган. Прошёл главу &quot;указатели&quot;, но так и не...

Нужно сделать из функции массивов функцию с указателями
void Word_mas(char s, int n, int l) { int count = 0, i = 0; while (s == ' ') count--; for...

Не получается правильно передать параметры в функцию
Совсем замучался. Решил делать не совсем так, как в методе и закопался. Вопрос вроде элементарный,...

Не получается передать правильно параметр в функцию
Помогите исправить. Не получается передать правильно параметр в функцию. #include &quot;header.h&quot; ...

Не получается отладить программу
В двумерном массиве удалить все строки, в которых среднее арифметическое элементов является...

1
NickoTin
Почетный модератор
Эксперт .NET
8451 / 3573 / 402
Регистрация: 14.06.2010
Сообщений: 4,512
Записей в блоге: 9
24.02.2011, 22:21 2
Цитата Сообщение от maxistudent Посмотреть сообщение
Нужно, чтобы программа выводила на экран место самого юного участника соревнований + имя и фамилию этого спортсмена.
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
#include <iostream>
#include <conio.h>
 
struct time {
    int min; //минуты
    int sec; //секунды
};
 
typedef struct {
    char name[20]; //имя
    char f_name[20]; //фамилия
    int age; //возраст
    time time; //результат
} athlete;
 
int init_athletes(athlete*& , int);
 
int main()
{
    athlete* all = NULL;
    int count = 0;
    int min = 0;
 
    printf("Number of athletes: ");
    scanf("%d", &count);
    if (count > 0) {
        min = init_athletes(all, count);
 
        printf("The youngest:\r\n\tPosition: %d\r\n\tName: %s\r\n\tSurname: %s\r\n\tAge: %d\r\n\tTime: %d min. %d sec.",
            min + 1, all[min].name, all[min].f_name, all[min].age, all[min].time.min, all[min].time.sec);
 
        delete[] all;
    }
    getch();
    return 0;
}
 
int init_athletes(athlete*& all, int count) {
    int i = 0, min = 0;
    all = new athlete[count];
 
    printf("Enter data for each athlete:\r\n");
    for(; i < count; ++i) {
        printf("%d) ", i + 1);
                // Format: First Second 0 00:00
        scanf("%s %s %d %d:%d", &all[i].name, &all[i].f_name, &all[i].age,
            &all[i].time.min, &all[i].time.sec);
 
        if (all[i].age < all[min].age)
            min = i;
    }
 
    return min;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2011, 22:21

Не получается отладить приложение
При попытке отладить приложение (нажатие на F-8) высвечивается строка Dim autostart..... и сразу...

Не получается с указателями :(
Программа считывает строки из файла и суммирует строки в строку str_new, при это создавая указатели...

В С++ 2012 не получается отладить программу
На с++ 2012 г. при отладке выскакивает окно присоединение к процессору, из-за чего и не работает...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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