Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
XPP
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
#1

Структуры - C++

21.12.2009, 23:47. Просмотров 984. Ответов 13

Помогите, объясните ПЛИЗ!!!

Описать структуру с именем MARSH, содержащую следующие поля:
• название начального пункта маршрута;
• название конечного пункта маршрута;
• номер маршрута.
Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH;
• вывод на экран информации о маршрутах, которые начинаются или оканчива¬ются в пункте, название которого введено с клавиатуры; если таких маршрутов нет, выдать на дисплей соответствующее сообщение.

Добавлено через 15 минут
с чего начать? плиз!!

Добавлено через 33 минуты
...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2009, 23:47     Структуры
Посмотрите здесь:

C++ Структуры
C++ Структуры
C++ Структуры Си++
структуры C++
C++ Структуры
C++ структуры
C++ СТРУКТУРЫ в СИ++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9440 / 5463 / 925
Регистрация: 25.07.2009
Сообщений: 10,485
22.12.2009, 00:29     Структуры #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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
 
#define STR_LEN 255
#define NUM_ROUTES 8
 
typedef struct {
    char start_point[STR_LEN];
    char end_point[STR_LEN];
    int num;
} Route_t;
 
Route_t newRoute(void){
    Route_t r;
    char *p;
    
    printf("Номер маршрута: ");
    scanf("%d%*c", &r.num);
    printf("Пункт отправления: ");
    fgets(r.start_point, STR_LEN, stdin);
    if ( p = strrchr(r.start_point, '\n') );
        *p = '\0';
    printf("Пункт прибытия: ");
    fgets(r.end_point, STR_LEN, stdin);
    if ( p = strrchr(r.end_point, '\n') );
        *p = '\0';
        
    return r;
}
 
int main(void){
    Route_t routes[NUM_ROUTES];
    size_t i, count;
    char str[STR_LEN], *p;
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    for ( i = 0; i < NUM_ROUTES; ++i ){
        printf("\nМаршрут #%d\n", i + 1);
        routes[i] = newRoute();
    }
    
    printf("\nПункт отправления/прибытия: ");
    fgets(str, STR_LEN, stdin);
    if ( p = strrchr(str, '\n') )
        *p = '\0';
    printf("\n#  Номер  Отправление         Прибытие\n--------------------------------------------------\n");
    for ( count = 0, i = 0; i < NUM_ROUTES; ++i )
        if ( !strcmp(routes[i].start_point, str) || !strcmp(routes[i].end_point, str) )
            printf("%-3d%-7d%-20s%s\n", ++count, routes[i].num, routes[i].start_point, routes[i].end_point);
    if ( !count )
        printf("Не найдено ниодного маршрута.\n");
    
    exit(0);
}
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
22.12.2009, 00:34     Структуры #3
XPP,

с чего начать? плиз!!

очевидно, с прочтения в учебнике что такое структура
XPP
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
22.12.2009, 12:53  [ТС]     Структуры #4
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
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct MARSH
{ char nach[10];
  char con[10];
  int  nom[3];
  }
  struct MARSH mas[30];
{  void main()
  int i;
  int s=0;
 
 { printf("nomer marshrut");
  scanf("%s",&mas[i].nom);
  printf("nachalnyi punkt");
  gets("%s",&mas[i].nach);
  printf("conechnyi punkt");
  scanf("%s",&mas[i].con);
  }
  for(i=0;i<8;i++)
  if((strcmp(m,mas[i].nach))==0)
 
  printf("\n marshrut %d\n",i+1);
  {puts(mas[i].nom) ;
  s=1;
  puts(mas[i].con);
  s=1;
 
  if(s==0)
  printf("marshrut ne nayden");
  getch();
  }
ошибку не могу найти , помогите ПЛИЗ!!
easybudda
Эксперт С++
9440 / 5463 / 925
Регистрация: 25.07.2009
Сообщений: 10,485
22.12.2009, 14:57     Структуры #5
Цитата Сообщение от XPP Посмотреть сообщение
scanf("%s",&mas[i].nom);
nom объявлен аж, как массив из 3 значений типа int (с какой кстати целью?), а Вы ему строку присвоить пытаетесь... Может и ещё что-то есть, это первое, что в глаза бросилось...
Да полно всего на самом деле.
Массив из структур вот так правильно объявляется:
C
1
2
3
4
5
struct MARSH { 
    char nach[10]; 
    char con[10]; 
    int nom[3]; 
} mas[30];
Да и куда Вам столько? По условию и 8 достаточно...
Заполнения структур вообще нет. Есть попытка присвоить значения одной структуре, как-бы находящейся по случайному адресу (scanf("%s",&mas[i].nom); - i не инициализирована)... Вывод тоже мрачен... Незачёт, короче
KamalovRadik
7 / 7 / 2
Регистрация: 10.07.2009
Сообщений: 206
22.12.2009, 16:25     Структуры #6
не scanf("%s",&mas[i].nom);
а scanf("%d",&mas[i].nom);

Добавлено через 1 минуту
printf("nomer marshrut");
scanf("%s",&mas[i].nom);
printf("nachalnyi punkt");
scanf("%s",&mas[i].nach);
printf("conechnyi punkt");
scanf("%s",&mas[i].con);

Добавлено через 44 секунды
printf("nomer marshrut");
scanf("%d",&mas[i].nom);
printf("nachalnyi punkt");
scanf("%s",&mas[i].nach);
printf("conechnyi punkt");
scanf("%s",&mas[i].con);

Добавлено через 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
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct MARSH
{ char nach[10];
  char con[10];
  int  nom[3];
  }
  struct MARSH mas[30];
{  void main()
  int i;
  int s=0;
 for(i=0;i<8;i++)
 { printf("nomer marshrut");
  scanf("%d",&mas[i].nom);
  printf("nachalnyi punkt");
 scanf("%s",&mas[i].nach);
  printf("conechnyi punkt");
  scanf("%s",&mas[i].con);
  }
  for(i=0;i<8;i++)
  if((strcmp(m,mas[i].nach))==0)
 
  printf("\n marshrut %d\n",i+1);
  {puts(mas[i].nom) ;
  s=1;
  puts(mas[i].con);
  s=1;
 
  if(s==0)
  printf("marshrut ne nayden");
  getch();
  }
Добавлено через 4 минуты
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
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct MARSH
{ char nach[10];
  char con[10];
  int  nom[3];
  }
  struct MARSH mas[30];
{  void main()
  int i;
  int s=0;
char m[10];
 for(i=0;i<8;i++)
 { printf("nomer marshrut");
  scanf("%d",&mas[i].nom);
  printf("nachalnyi punkt");
 scanf("%s",&mas[i].nach);
  printf("conechnyi punkt");
  scanf("%s",&mas[i].con);
  }
  for(i=0;i<8;i++)
  if((strcmp(m,mas[i].nach))==0)
 
 { printf("\n marshrut \n");
  printf("%d", mas[i].nom) ;
  printf("conechnaya: %s", mas[i].con);
  s++;}
 
  if(s==0)
  printf("marshrut ne nayden");
  getch();
  }
XPP
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
22.12.2009, 16:53  [ТС]     Структуры #7
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
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct MARSH
{ char nach[10];
  char con[10];
  int  nom[3];
  }
  struct MARSH mas[30];
{  void main()
  int i;
  int s=0;
 char m[10];
for(i=0;i<8;i++)
{ printf("nomer marshrut");
  scanf("%d",&mas[i].nom);
  printf("nachalnyi punkt");
  scanf("%s",&mas[i].nach);
  printf("conechnyi punkt");
  scanf("%s",&mas[i].con);
  }
  for(i=0;i<8;i++)
  if((strcmp(m,mas[i].nach))==0)
 
  {printf("\n marshrut\n");
  printf("%d",mas[i].nom) ;
  printf("conechnaya: %s",mas[i].con);
  s++;}
 
  if(s==0)
  printf("marshrut ne nayden");
  getch();
  }
Выдает ошибку "too many types in diclaration" че делать ПЛИЗ скажите!!
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
22.12.2009, 17:04     Структуры #8
C
1
2
3
4
5
struct MARSH
{ char nach[10];
  char con[10];
  int  nom[3];
  };//забыли пустой оператор.
XPP
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
22.12.2009, 17:09  [ТС]     Структуры #9
А "diclaration syntax error" че значит?
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
22.12.2009, 17:25     Структуры #10
значит "ошибка правописания дикларации"
вот.
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
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct MARSH
{ char nach[10];
  char con[10];
  int  nom[3];
  };
  struct MARSH mas[30];
void main()
{
     int i;
     int s=0;
     char m[10];
     for (i=0;i<8;i++)
     {
         printf("nomer marshrut");
         scanf("%d",&mas[i].nom);
         printf("nachalnyi punkt");
         scanf("%s",&mas[i].nach);
         printf("conechnyi punkt");
         scanf("%s",&mas[i].con);
     }
     for (i=0;i<8;i++)
     if ((strcmp(m,mas[i].nach))==0)
     {
        printf("\n marshrut\n");
        printf("%d",mas[i].nom) ;
        printf("conechnaya: %s",mas[i].con);
        s++;
     }
 
     if(s==0)
     printf("marshrut ne nayden");
     getch();
 }
только это рограмма, всеравно зацикливается... хотя я задания не читал.
XPP
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
22.12.2009, 18:33  [ТС]     Структуры #11
как исправить плиз!!
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
22.12.2009, 19:28     Структуры #12
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct MARSH{
       char begin[24];
       char end[24];
       int  num;
};
int main()
{
     struct MARSH mas[8];
     char goal[24];//
     int i;
 
     for (i=0;i<8;i++)
     {
         printf("nomer marshrut: ");
         scanf("%d",&mas[i].num);
         printf("nachalnyi punkt: ");
         scanf("%s",&mas[i].begin);
         printf("conechnyi punkt: ");
         scanf("%s",&mas[i].end);
     }
     
     printf("What destination punct do oyu need?\n");
     scanf("%s",goal);
     
     int s=0;
     for (i=0;i<8;i++)
     if ((strcmp(goal,mas[i].begin)==0)||(strcmp(goal,mas[i].end)==0))
     {
        printf("marshrut num=\%d\n",mas[i].num);
        printf("nachalnaya: %s\n",mas[i].begin);
        printf("conechnaya: %s\n",mas[i].end);
        s++;
     }
 
     if(s==0)printf("marshrut ne nayde\n");
     getch();
 }
maks-tver
Сообщений: n/a
24.12.2009, 17:57     Структуры #13
народ помогите написать прогу плизз))
1) вводить структуру задающую параболу
2) выводить структуру задающую параболу
3)находить точки пересечения параболы с осями координат
4) найти точки пересечени параболы с прямой ax+b=y (прямая задается пользователем)
5)оппределить местоположение точки (х,у) относительно параболы (точка задается пользователем)
6)определить, имеет ли парабола точку пересечения с другой параболой (другая парабола задается пользователем)
заранее спасибо
желательно на С
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2010, 13:37     Структуры
Еще ссылки по теме:

C++ Структуры.
структуры. C++
C++ Структуры
структуры C++

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

Или воспользуйтесь поиском по форуму:
XPP
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
05.01.2010, 13:37  [ТС]     Структуры #14
все равно где то ошибка, не могу найти его
помогите ПЛИЗЗ!!!

Добавлено через 1 час 0 минут
Цитата Сообщение от XPP Посмотреть сообщение
все равно где то ошибка, не могу найти его
помогите ПЛИЗЗ!!!
все нашел ошибку))))
Yandex
Объявления
05.01.2010, 13:37     Структуры
Ответ Создать тему
Опции темы

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