Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск данных 
:(
    Опции темы
sasha1212
Дата 21.11.2014, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 11.3.2014

Репутация: нет
Всего: нет



Помогите пожалуйста,нужно организовать поиск по предложенным пунктам и чтобы потом на экран выводились данные об этом туре.Где ошибка в коде?
Код

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>



void input_data(void);
void output_data(void);
void change_data();
void print(int);
void search_data();
void finish_application(void);
int i;
struct touring
{char country[100];
 char city[100];
 int tour_duration;
 int cost;
 } tour[100];



int main()
//void main (void)
{

 int p;
 printf("Welcome to Data Base of travel company King of World \n");
  while(1)
{
printf("Enter 1 if you want to enter data \n");
 printf("Enter 2 if you want to look at data\n");
 printf("Enter 3 if you want to change at data\n");
 printf("Enter 4 if you want to search data\n");
 printf("Enter 5 if you want to finish work with application\n");
 printf("Select:");
  scanf("%d",&p);
    switch(p)
    {
    case 1 :
        input_data();
        break;
    case 2:
        output_data();
        break;        
     case 3:
           change_data();
        break;  
     case 4:
           search_data();
        break;             
    case 5:
        finish_application();
        break;       
    default: printf("\n\t Any of points isn't chosen\n");
    }
 
}
return 0;
}
void input_data(void)
{

 for(i=1;i<=3;i++)
 {printf("Enter data  about %d' tour\n",i);
 printf("Enter country:");
 scanf("%s",&tour[i].country);

 printf("Enter city:");
 scanf("%s",&tour[i].city);

 printf("Enter number of days of tour:");
 scanf("%d",&tour[i].tour_duration);

 printf("Enter cost:");
 scanf("%d",&tour[i].cost);
 printf("\n");
 printf("\n");
 }
}
void change_data()
{
    int a;
    printf("Enter number of record\n");
    scanf("%d",&i);
    printf("Select item for change\n");
    printf("1.country\n");
    printf("2.city\n");
    printf("3.numbers of days\n");
    printf("4.cost\n");
    scanf("%d", &a);
    switch (a)
    {
        case 1: {
                printf("Enter new country\n");
                scanf("%s", &tour[i].country);
                break;
                }
        case 2: {
                printf("Enter new city\n");
                scanf("%s", &tour[i].city);
                break;
                }
        case 3: {
                printf("Enter new numbers of days\n");
                scanf("%d", &tour[i].tour_duration);
                
                break;
                }
       case 4: {
                printf("Enter new cost\n");
                scanf("%d", &tour[i].cost);
                
                break;
                }         
    }
}
void output_data(void)
{for(i=1;i<=3;i++)
 {printf("Data about %d' tour\n",i);
 printf("Country:%s\n",tour[i].country);
 printf("City:%s\n",tour[i].city);
 printf("Number of days of tour:%d\n",tour[i].tour_duration);
 printf("Cost:%d\n",tour[i].cost);

 printf("\n");
 printf("\n");
 }

 }
void print(int i)
{

 printf("Data about %d' tour\n",i);
 printf("Country:%s\n",tour[i].country);
 printf("City:%s\n",tour[i].city);
 printf("Number of days of tour:%d\n",tour[i].tour_duration);
 printf("Cost:%d\n",tour[i].cost);

}





void search_data()

    int n=0;
    int i=0;
    int d=1;
    char b[100];
    printf("Enter 1 for search by country\n");
    printf("Enter 2 for search by city\n");
    printf("Enter 3 for search by number of days of tour\n");
    printf("Enter 4 for search by cost of tour\n");   
    scanf("%d",&n);
    switch(n)
    {
    case 1:
        {
            printf("Enter country \n");
            scanf("%s",b);
            for(i=1;i<3;i++)
                if((tour[i].country==b)
                    print(i);
            break;
        }
    case 2 :
        {
            printf("Enter city \n");
            scanf("%s",b);
            for(i=1;i<3;i++)
                if((tour[i].city==b)
                    print(i);
            break;
        }
    case 3 :
        {
            printf("Enter number of days of tour \n");
            scanf("%d",&d);
            for(i=1;i<3;i++)
                if(tour[i].tour_duration==d)
                    print(i);
            break;
        }
    case 4 :
        {
            printf("Enter cost of tour \n");
            scanf("%d",&d);
            for(i=1;i<3;i++)
                if(tour[i].cost==d)
                    print(i);
            break;
        }
}
}
    
                        
 void finish_application()
{
 exit(1);


PM MAIL   Вверх
baldina
Дата 21.11.2014, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



про ошибки вам сообщает компилятор, выводя номера строк. вы хотите что бы мы побыли компилятором?
у вас как минимум 2 вида ошибок:
- не хватает закрывающих круглых скобок в выражениях if
- когда считываете строку, надо передавать в scanf адрес, а не адрес адреса т.е. не
Код

scanf("%s", &tour[i].country);

а
Код

scanf("%s", tour[i].country);

PM MAIL   Вверх
sasha1212
Дата 21.11.2014, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 11.3.2014

Репутация: нет
Всего: нет



baldina, проблема в том, что компилятор то ошибок и не выдает
PM MAIL   Вверх
baldina
Дата 21.11.2014, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



не может быть: http://ideone.com/tVG4xs

Добавлено через 3 минуты и 2 секунды
кстати, чем вы компилируете? conio.h - нестандартная старина, которая к тому же в вашей программе не используется
PM MAIL   Вверх
sasha1212
Дата 21.11.2014, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 11.3.2014

Репутация: нет
Всего: нет



baldina, компилятор DEV,в университете требуют conio.h
PM MAIL   Вверх
sQu1rr
Дата 21.11.2014, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Цитата(sasha1212 @  21.11.2014,  18:40 Найти цитируемый пост)
DEV

Dev-C++ это IDE, а компилятор там MinGW GCC если не ошибаюсь. И он просто не может не показывать вышеупомянутые ошибки. Да вообще, ни один компилятор впринципе не пропустит синтаксические ошибки вроде скобок
PM MAIL Skype GTalk   Вверх
baldina
Дата 21.11.2014, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Цитата(sasha1212 @  21.11.2014,  20:40 Найти цитируемый пост)
в университете требуют conio.h

как его "могут требовать" в университете?  smile 
вы уточните у преподавателя, скорее всего это "требование" вы неправильно понимаете
PM MAIL   Вверх
sasha1212
Дата 21.11.2014, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 11.3.2014

Репутация: нет
Всего: нет



baldina, вот такой у нас преподаватель
Поставил нужные фигурные скобки в операторе if,но программа все равно не ищет
PM MAIL   Вверх
baldina
Дата 22.11.2014, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



думаю, не в преподавателе дело..
в if не фигурных скобок не хватало. вы скажите, оно у вас откомпилировалось или как?

Добавлено через 12 минут и 18 секунд
ну вот кое-как оно работает:
http://ideone.com/4jPctg

но там есть ошибки. массивы в С индексируются с 0, это я поправил.
а сравнение строк оператором = не получится. для этого надо использовать функцию strcmp()
Код

if (strcmp(s1,s2) == 0) 
  ;// s1 == s2
else
  ;// s1 != s2


дальше самостоятельно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1204 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.