Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Astrohan
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 5
1

Выяснить, имеется ли пассажир, багаж которого превышает багаж каждого из остальных пассажиров

24.04.2014, 14:49. Просмотров 681. Ответов 4
Метки нет (Все метки)

Багаж пассажира характеризуется количеством вещей и общим весом вещей. Сведения о багаже каждого пассажира представляют собой запись Фамилия инициалы, вес, количество вещей.
Выяснить, имеется ли пассажир, багаж которого превышает багаж каждого из остальных пассажиров и по числу вещей, и по весу.
помогите с программкой.

Добавлено через 42 минуты
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
#define FAMILY 80
#define BUFSIZE 100
 
#define FILENAME "data.txt"
 
struct phone
{
    char family[FAMILY];
    char io[5]; /* 2 буквы, 2 точки, 1 null-символ*/
    int number;
    float mass;
};
 
int main()
{
    int n = 0; /* число записей в файле данных */
    int i,max1=0;
    float max2=0;
    struct phone * m; /* массив структур */
    char family[FAMILY], init[5];
    char tmp[BUFSIZE];
    FILE *in; /* указатель на файл данных */
 
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
 
    in = fopen(FILENAME, "r"); /* открываем файл на чтение */
    if (in != NULL)
    {
        do{
            fgets(tmp, BUFSIZE, in);
            n++;
        }while (!feof( in ));
 
        printf("Считано %d строк\n", n);
        m = (struct phone*)calloc(n, sizeof(struct phone));
        if (m == NULL)
        {
            printf("Ошибка выделения памяти\n");
            fclose( in ); /* закрытие файла */
        }
        else
        {
            fseek(in, 0, SEEK_SET); /* переместиться в начало файла */
            for(i=0; i<n ;i++)
                fscanf(in, "%s%s%d%f", m[i].family, m[i].io, &m[i].number, &m[i].mass);
 
            printf("Список багажа:\n");
            for(i=0; i<n ;i++)
                printf("%d.\t%s %s\n", i+1, m[i].family, m[i].io);
 
            for(i=0; i<n ;i++)
               {
               if (m[i].number>max1)
               max1=(m[i].number);
               if (m[i].mass>max2)
               max2=(m[i].mass);
               }
 
            printf("max: %d %.2f\n", max1, max2);
            fclose( in ); /* закрытие файла */
            free( m ); /* освободить динамическую память */
        }
    }
    else
        printf("Файл %s не найден\n", FILENAME);
    return 0;
}
получилось что-то такое как проверку сделать один это и тот же человек или нет?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2014, 14:49
Ответы с готовыми решениями:

Имеется ли пассажир, багаж которого состоит из одной вещи массой менее m кг
Дан файл Bagazh, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого...

Выяснить, иммется ли пассажир, багаж которого состоит из одной вещи весом менее m кг
пожалуууйстааа, помогите найти ошибку в программе!!! никак не могу понять, в чем состоит ошибка:(...

Багаж. Найти число пассажиров, имеющих более двух вещей
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл, содержащий...

Запись: Выяснить, имеется ли пассажир, багаж которого превышает багаж каждого из остальных пассажиров по кол-ву вещей и по весу
Через записи: Багаж пассажира характеризуется количеством вещей и весом вещей. Пусть дан массив,...

Записи. Имеется ли пассажир, багаж которого превышает багаж остальных пассажиров по количеству вещей и по весу
помогите сделать задачи на паскале: 1)Задача по записям: Багаж пассажира хар-ся кол-вом вещей и...

4
Vtulhu
425 / 379 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
24.04.2014, 14:57 2
Лучший ответ Сообщение было отмечено Astrohan как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
#define MAX_PASSENGERS 2
 
typedef struct Passenger {
    char* name;
    double weight;
    int things;
} passenger;
 
passenger passengers[MAX_PASSENGERS];
 
int find_bad_passenger(double max_weight, int max_things)
{
    for( int i = 0; i < MAX_PASSENGERS; ++i ) {
        if( passengers[i].weight > max_weight || passengers[i].things > max_things ) return i;
    }
    return -1;
}
1
Astrohan
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 5
24.04.2014, 15:00  [ТС] 3
Можно пояснить что есть что? а то весь день сижу туплю уже!
0
Vtulhu
425 / 379 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
24.04.2014, 15:09 4
В смысле "целый день"? Я только что функцию опубликовал. По-моему, она очевидна (как и всякий хороший код). Пробегаемся по массиву пассажиров, пока не наткнёмся на такого, у которого хотя бы один параметр (вес или количество вещей) выходят за пределы нормы. Возвращаем номер этого пассажира. Если такого пассажира нет (т.е. всё хорошо), возвращаем -1. Можно true и false возвращать. Или имя пассажира. Я не знаю, как тебе удобнее.
0
Astrohan
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 5
24.04.2014, 15:41  [ТС] 5
да я сам допер спасибо еще раз я информатику делаю это уже 8 задача тупить начал давно не занимался этим!

Добавлено через 28 минут
по тупому
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
#define FAMILY 80
#define BUFSIZE 100
#define MAX_PASSENGERS 2
 
#define FILENAME "data.txt"
 
struct phone
{
    char family[FAMILY];
    char io[5]; /* 2 буквы, 2 точки, 1 null-символ*/
    int number;
    float mass;
};
 
 
int main()
{
    int n = 0; /* число записей в файле данных */
    int i, m1=0, m2=0, max1=0;
    float max2=0;
    struct phone * m; /* массив структур */
    char tmp[BUFSIZE];
    FILE *in; /* указатель на файл данных */
 
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
 
    in = fopen(FILENAME, "r"); /* открываем файл на чтение */
    if (in != NULL)
    {
        do{
            fgets(tmp, BUFSIZE, in);
            n++;
        }while (!feof( in ));
 
        printf("Считано %d строк\n", n);
        m = (struct phone*)calloc(n, sizeof(struct phone));
        if (m == NULL)
        {
            printf("Ошибка выделения памяти\n");
            fclose( in ); /* закрытие файла */
        }
        else
        {
            fseek(in, 0, SEEK_SET); /* переместиться в начало файла */
            for(i=0; i<n ;i++)
                fscanf(in, "%s%s%d%f", m[i].family, m[i].io, &m[i].number, &m[i].mass);
            for(i=0; i<n ;i++)
               {
               if (m[i].number>max1)
               {max1=(m[i].number);
               m1 = i;}
               if (m[i].mass>max2)
               {max2=(m[i].mass);
               m2 = i;}
               }
            if(m1 == m2)
            {printf("%d. %s %s\n", m1 , m[m1].family, m[m1].io);
                printf("Багаж есть max: %d %.2f\n\n", max1, max2);}
            else
                printf("Багажа нет\n");
            fclose( in ); /* закрытие файла */
            free( m ); /* освободить динамическую память */
        }
    }
    else
        printf("Файл %s не найден\n", FILENAME);
    return 0;
}
0
24.04.2014, 15:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2014, 15:41

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

Выяснить, имеется ли пассажир, багаж которого состоит из одной вещи весом менее т кг.
Тема: Типизированые файлы Выяснить, имеется ли пассажир, багаж которого состоит из одной вещи...

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


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

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

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