Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Александр94_94
0 / 0 / 0
Регистрация: 04.11.2011
Сообщений: 20
#1

Сформировать массив, имеющий следующую структуру - C (СИ)

22.09.2012, 19:37. Просмотров 880. Ответов 1
Метки нет (Все метки)

Сформировать массив, имеющий следующую структуру:
struct пассажир= ФИО:char [ ];
номер рейса: char [ ];
общий вес вещей:int;


(В работе необходимо выводить меню со следующим выбором:
Формирование массива (8-10 записей)
Просмотр массива
Пункт 1 из задания
Пункт 2 из задания
Выход.)

Помогите с задачей, есть вот такой текст (Необходимо каждое действие записать в отдельную функцию + нужна функция ввода строки (gets и puts сказали не использовать)):

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
74
75
# include<stdio.h>
# include <string.h>
 
struct passenger //описание структурного типа
    {
        char name[10];//Имя и Инициалы
        int  item;//предмет
        char numberg[15];
        };
struct passenger pass[10];//массив структур
struct passenger *ps;
 
int Enter_struct(struct passenger *ps)
{ 
  int n,i;
  while(1)
    {
      printf("Введите количество элементов структуры\n");
      scanf("%d",&n);
      if(n>0 && n<10)
    break;
    }
    
  for(i=0;i<n;i++)//заполняем структуру
    {
     printf("Введит Фамилию и инициалы\n");
     scanf("%s",pass[i].name);
     printf("Введите номер рейса\n");
     scanf("%s",pass[i].numberg);
     printf("Введите общий вес вещей пассажира\n");
     scanf("%d",&pass[i].item);
    }
  return n;
}
 
int Put_struct(struct passenger *ps, int q)
{ int i;
  for(i=0;i<q;i++)//выводим структуру
    {
     printf("Фамилия и инициалы %s\t",pass[i].name);
     printf("Номер рейса: %s\t",pass[i].numberg);
     printf("Общий вес вещей пассажира: %d \n",pass[i].item);
    }
  return 0;
}
 
 
int main(void)
{
 int i, n=0, max;
 int flag=0, in;
 n=Enter_struct(ps);
 Put_struct(ps,n);
 max=pass[0].item;
 for(i=1;i<n;i++)//проходим по массиву структур и ищем пассажира с наибольшим весом вещей
    {
     if(max<pass[i].item)
        {flag=1;
     max=pass[i].item;
     in=i;
    }
     }
 if(flag!=0)
   {
     printf("Фамилия.И.О. %s\t",pass[in].name);
     printf("Номер рейса: %s\t",pass[in].numberg);
     printf("Общий вес вещей: %d",pass[in].item);
   }
 else
   {
    printf("Фамилия.И.О. %s\t",pass[0].name);
    printf("Номер рейса: %s\t",pass[0].numberg);
    printf("Общий вес вещей: %d\n",pass[0].item);
   }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2012, 19:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать массив, имеющий следующую структуру (C (СИ)):

Структуры, указывающие на следующую структуру - C (СИ)
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; typedef struct { int data; struct x1 *next; struct x1 *prev; }...

Вывести массив, имеющий наибольшее количество положительных элементов (нужно найти ошибку) - C (СИ)
Заданы два массива А(M) и В(M). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий наибольшее...

Сформировать динамическую структуру, содержащую данные по студентам - C (СИ)
Сформировать динамическую структуру вид структуры , содержащую данные по студентам в следующем виде: &quot;Фамилия Имя Группа ГР RS&quot;, где ГР –...

Сформировать массив, который будет состоять из чисел, входящих как в массив A, так и в массив B - C (СИ)
Задание: На основе исходных массивов A и B (n и m – рабочие размеры массивов) сформировать массив C, который будет состоять из чисел,...

Сформировать динамическую структуру (вид структуры - список), содержащую данные по студентам - C (СИ)
Сформировать динамическую структуру (вид структуры - список), содержащую данные по сту- дентам в следующем виде: &quot;Фамилия Имя...

Подсчитать количество элементов, больших значения t и первым вывести массив, имеющий наименьшее их количество - C (СИ)
Написать пользовательскую функцию, решающую указанную ниже задачу. Массивы А и В динамические, выделение памяти выполнить функциями...

1
Александр94_94
0 / 0 / 0
Регистрация: 04.11.2011
Сообщений: 20
24.09.2012, 22:35  [ТС] #2
Немного изменился текст:
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# include<stdio.h>
# include <string.h>
 
struct passenger //описание структурного типа
    {
        char name[10];//Имя и Инициалы
        int  item;//предмет
        char numberg[15];//номер рейса
    };
struct passenger pass[10];//массив структур
int mass[10], *m;
 
int Enter_struct(struct passenger *ps)//функция ввода структуры
{
  int n,i;
  while(1)//условие для корректного введения количества элементов структуры
    {
      printf("Введите количество элементов структуры\n");
      scanf("%d",&n);
      if(n>0 && n<10)
    break;
    }
    
  for(i=0;i<n;i++)//заполняем структуру
    {
     printf("Введит Фамилию и инициалы\t");
     scanf("%s",ps[i].name);
     printf("Введите номер рейса\t");
     scanf("%s",ps[i].numberg);
     printf("Введите общий вес вещей пассажира\t");
     printf("\n");
     scanf("%d",&ps[i].item);
    }
  return n;//возвращаем количество элементов структуры
}
 
void Put_struct(struct passenger *ps, int q)//функция вывода структуры
{ int i;
  for(i=0;i<q;i++)//выводим структуру
    {
     printf("Фамилия и инициалы %s\t",ps[i].name);
     printf("Номер рейса: %s\t",ps[i].numberg);
     printf("Общий вес вещей пассажира: %d \n",ps[i].item);
    }
}
 
int Mission(struct passenger *ps, n, *m)
{ int max, in=0, j=0;
  max=ps[0].item;
  *m=0;
  for(i=1;i<n;i++)//проходим по массиву структур и ищем пассажира с наибольшим весом вещей
    {
     if(max<ps[i].item)
        {
         max=ps[i].item;
         in=i;
        }
    }
  *m=in;
  j=1;
  if(in!=0)
      for(i=0;i<n;i++)
        {
         if(ps[i].item==ps[in].item)
             {
              *m[j]=i;
              j++;
             }
        } 
 return j;
}
 
void Mission_2(struct passenger *ps, n)
{ char flight;
  int a;
  printf("Введите номер рейса\n");
  scanf("%s",&flight);
  for(i=0;i<n;i++)
   { if(a=strcmp(flight,ps[i].numberg)==0)
        { printf("Фамилия.И.О. %s\t",ps[in].name);
          printf("Номер рейса: %s\t",ps[in].numberg);
          printf("Общий вес вещей: %d",ps[in].item);
        }
   }
}
 
void Result(struct passenger *ps, j, *m)
{ int in;
  for(i=0;i<j;i++)
   { in=*m[i];
     printf("Фамилия.И.О. %s\t",ps[in].name);
     printf("Номер рейса: %s\t",ps[in].numberg);
     printf("Общий вес вещей: %d",ps[in].item);
   }
}
 
 
int main(void)//основная функция
{
 int i, n=0, max;
 int j, in,k;
 *m=*mass;
 /*
 В случае грамотной работы подлежит удалению:
 n=Enter_struct(pass);//обращение к функции ввода структуры
 Put_struct(pass,n);//обращение к функции вывода структуры
 j=Mission(pass, n, m);
 Result(pass, j, m);
 */
 do
    {   printf("1.Формирование массива структур\n 2.Просмотр массива\n 3.Пассажир с наибольшим количеством вещей\n 0.Выход\n");
        scanf("%d",&k);
        switch(k)
          {
             case(1):n=Enter_struct(pass);break;
             case(2):if(n==0) printf("Массив не введен, для ввода, в меню нажмите 1\n") else Put_struct(pass,n);break;
             case(3):if(n==0) printf("Массив не введен, для ввода, в меню нажмите 1\n") else {j=Mission(pass, n, m); Result(pass, j, m)};break;
             case(4):if(n==0) printf("Массив не введен, для ввода, в меню нажмите 1\n") else Mission_2(pass, n);break;
          }
    }
 while(k!=0);
}
Добавлено через 9 часов 29 минут
Задача решена. Можно закрыть тему.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2012, 22:35
Привет! Вот еще темы с ответами:

Дан массив X(25). Сформировать новый массив из чисел исходного, лежащих в интервале [-3,7] - C (СИ)
Доброго времени суток... Написание данной программы на языке (С) вызвало у меня некое затруднение,буду очень рад,если кто-то может...

Сформировать массив B из квадратных корней и массив C из квадратов элементов массива A - C (СИ)
Ввести массив A из 15 целочисленных элементов.Сформировать массив B из квадратных корней и массив C из квадратов элементов массива...

Считать структуру из файла в массив - C (СИ)
Здравствуйте, есть такая проблема никак не получается записать в массив созданный файл, делаю это для того чтобы потом там отсортировать,...

Массив указателей поместить в структуру - C (СИ)
имеется массив указателей char *mainmenu = { &quot;FILE&quot;, &quot;EDIT&quot;, &quot;VIEW&quot;, &quot;ABOUT&quot; }; пытаюсь поместить их в...


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

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

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