Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2011, 16:26   #1
j-pavlov
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 34
По умолчанию Структура MARSH

Проверьте код
Условие
1. Описать структуру с именем MARSH, содержащую следующие поля:
BEGST — название начального пункта маршрута;
TERM — название конечного пункта маршрута;
NUMER — номер маршрута.
2. Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив TRAFIC, состоящий из восьми элементов типа MARSH; записи должны быть упорядочены по номерам маршрутов;
вывод на экран информации о маршрутах, которые начинаются или кончаются в пункте, название которого введено с клавиатуры;
если таких маршрутов нет, выдать на дисплей соответствующее сообщение.

Код

Код:
#include<iostream>
#include<cstring>
 
using namespace std;
 
struct MARSH {
        char BEGST[40];
        char TERM[40]; 
        int NUMER ; 
} TRAFIC[8];
 
void vvod(), vivod();
 
int main()
{
    cout << "Введите информацию о маршрутах" << endl;
    vvod();
    vivod();
    return 0;
}
void vvod()
{
        for(int u = 0; u < 8 ; u++)
        {
                cout << "Маршрут номер :  " << u << endl << "Навзвание начального пункта маршрута : ";
                cin >> TRAFIC[u].BEGST;
                cout << endl << "Конечного пункта : ";
                cin >> TRAFIC[u].TERM;
                cout << endl << "Его номер : ";
                cin >> TRAFIC[u].NUMER;
        }
        cout << endl;
}
 
void vivod()
{      
        int schet = 0;
        char poisk[40], tochka[60];
        cout << "Конечная или начальная точка? [k/n]" << endl;
        cin >> tochka;
        if (tochka[0]=='k')
        {
                cout << endl << "Введите точку : ";
                cin >> poisk ;
                for(int t = 0; t < 8; t++)
                {
                        if(!(strcmp(TRAFIC[t].BEGST, poisk)))
                        {                                  
                                cout << "маршрут  " << TRAFIC[t].NUMER << endl;
                                schet++;
                        }
                        if(schet==0); cout << "Ненайдено";
                }
        }
        else if(tochka[0]=='k')  {
                cout << endl << "Введите точку : ";
                cin >> poisk ;
                for(int t = 0; t < 8; t++)
                {
                        if(!(strcmp(TRAFIC[t].TERM, poisk)))
                        {                                  
                                cout << "маршрут  " << TRAFIC[t].NUMER << endl;
                                schet++;
                        }
                        if(schet==0); cout << "Ненайдено";
                }
        }
        else 
        {
                cout << "";
                vivod();
        }
}
Оно запускается, но доходит до "Конечная или начальная точка? я ввожу Конечная и он снова задает вопрос "Конечная или начальная точка? вбиваю начальная в общем так повторяется много раз.
j-pavlov вне форума Ответить с цитированием
Старый 30.04.2011, 17:32   #2
j-pavlov
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 34
По умолчанию

все разобрался
j-pavlov вне форума Ответить с цитированием
Старый 01.05.2011, 18:09   #3
j-pavlov
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 34
По умолчанию

нет видимо не разобрался, вопрос открыт до завтра, помогите плиз препод запорол сказал второй пункт не работает у меня.. помогите люди добрые, я уже голову всю с задачей этой сломал ((
j-pavlov вне форума Ответить с цитированием
Старый 01.05.2011, 19:43   #4
Lapo4ka
Подтвердите свой е-майл
 
Регистрация: 30.04.2011
Сообщений: 44
По умолчанию

Цитата:
Сообщение от j-pavlov Посмотреть сообщение
нет видимо не разобрался, вопрос открыт до завтра, помогите плиз препод запорол сказал второй пункт не работает у меня.. помогите люди добрые, я уже голову всю с задачей этой сломал ((
2 пункт - это какой?? что именно не работает?
Lapo4ka вне форума Ответить с цитированием
Старый 01.05.2011, 20:18   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Надо убрать точку с запятой в этом коде:
Код:
if(schet==0); cout << "Ненайдено";
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 01.05.2011, 20:26   #6
j-pavlov
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 34
По умолчанию

не находит маршруты, не зависимо от if выдает не найдено
j-pavlov вне форума Ответить с цитированием
Старый 01.05.2011, 20:41   #7
Lapo4ka
Подтвердите свой е-майл
 
Регистрация: 30.04.2011
Сообщений: 44
По умолчанию

вот рабочий код

Код:
#include <iostream>
#include <locale.h>
#include <math.h>
using namespace std;

struct marsh
 {
  char *begst;
  char *term;
  int numer;
};


marsh trafic[8];


void main()
{
	setlocale(LC_ALL,"Rus");
	for(int i=1; i<=8; i++)
	{
		trafic[i].begst = (char*)malloc(30*sizeof(char));
		trafic[i].term = (char*)malloc(30*sizeof(char));
	}

      for(int i = 1; i <= 8 ; i++)
        {
                cout << "Маршрут номер:  " << i <<"\n";
				trafic[i].numer = i;
				cout<< "Название начального пункта маршрута: ";
                cin >> trafic[i].begst;
                cout << "Конечного пункта: ";
                cin >> trafic[i].term;
        }

	  cout << "Введите название пункта: ";
	  char *naz;
	  naz=(char*)malloc(30*sizeof(char));
	  cin >>naz;

	  int k=0;
	  for (int i=1; i<=8; i++)
	  {
		  if ( (strcmp(trafic[i].begst, naz) ==0) || (strcmp(trafic[i].term, naz) ==0))
		  {		
			  cout << "Маршрут номер:  " << trafic[i].numer <<"\n";
			  cout << "Название начального пункта маршрута: " << trafic[i].begst<< "\n";
			  cout << "Конечного пункта: " << trafic[i].term << "\n";
		  k++;
		  }
		  
	  }
	  if(k==0) cout << "Таких маршрутов нет\n";
			  
}

Последний раз редактировалось Lapo4ka; 01.05.2011 в 21:09.
Lapo4ka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура Seferus Общие вопросы C/C++ 0 15.11.2010 13:55
структура на С++ yula92 Помощь студентам 0 25.05.2010 17:39
Структура SL1CK Общие вопросы C/C++ 8 08.06.2009 21:31
структура cr1mson Общие вопросы C/C++ 3 14.01.2009 18:08