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

if не правильно ратотает - C++

Восстановить пароль Регистрация
 
//Александр
 Аватар для //Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
23.09.2010, 00:47     if не правильно ратотает #1
Такая проблема в структуре есть поле type типа char мне нужно его сравниь c переменной типа char и если они совпали вывисти на экран остальные значения
не могу понять почему не правильно сравнивает.
подскажите как это сделать
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
#include <iostream>
#include <clocale>
#include <conio.h>
 
using namespace std;
 
struct AEROFLOT
{
    char name[10];
    int number;
    char type[10];
};
 
void sort_name ( AEROFLOT aeroflot[7])
{   char obmen[10];
    int j,i,g;
 
    for( g=0;g<7;g++)
        for(i=0;i<=5;i++)
        {
          if(aeroflot[i].name[0]>aeroflot[i+1].name[0])
          {
        for(j=0; j<=10; j++)
    {               
       obmen[j]=aeroflot[i].name[j];        
       aeroflot[i].name[j]=aeroflot[i+1].name[j];
       aeroflot[i+1].name[j]=obmen[j];
     }
    
          }}
        /* вывод сортировки
    for(i=0; i<7; i++)
    cout << aeroflot[i].name;*/
        
}
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    AEROFLOT aeroflot[7];
    int i,j,temp;
    char n[10];
    temp=0;
 
    for (i=0;i<7;i++)
    {
        cout << "введите название пункта назначения \n";
        cin  >> aeroflot[i].name;
        cout << "введите номер рейса \n";
        cin  >> aeroflot[i].number;
        cout << "введите тип самолета \n";
        cin  >> aeroflot[i].type;
    }
    sort_name (aeroflot);
    i=0;
    cout << "введите тип нужного Вам самолета\n";
    
    cin  >> n;
    
    
 
    for (i=0;i<7;i++)
    {
        
        
        
        if(aeroflot[i].type==n) // в этой строчке не правильно сравневает 
          { cout << "\n";
            cout << "название пункта назначения  ";
            cout << aeroflot[i].name; 
            cout << "\n";
            cout << "номер  ";
            cout <<aeroflot[i].number;
            temp++;
           
        }
    }
    
    if (temp==0)
        cout << "Aircraft of this type do not";
 
 
    getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
23.09.2010, 01:28     if не правильно ратотает #2
Не правильно, потому что type у тебя char[] и ты к нему обращаешься по указателю: aeroflot[i].type==n
сравниваешь char* с char
//Александр
 Аватар для //Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
23.09.2010, 01:35  [ТС]     if не правильно ратотает #3
А как их правельно сравнить ???
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
23.09.2010, 01:42     if не правильно ратотает #4
//Александр, я перепутал, у вас n тоже char[]. В общем надо так:
if(!strcmp(aeroflot[i].type, n))
//Александр
 Аватар для //Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
23.09.2010, 01:59  [ТС]     if не правильно ратотает #5
спасибо сейчас попробую

Добавлено через 16 минут
C++
1
2
3
4
5
6
7
8
9
10
11
if(!strcmp(aeroflot[i].type, n))
         {  
            cout << "\n";
            cout << "название пункта назначения  ";
            cout << aeroflot[i].name; 
            cout << "\n";
            cout << "номер  ";
            cout <<aeroflot[i].number;
            temp++;
          
         }
вот я переделал вроде сравневает номер правельно выводит а имя следующее берет
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
23.09.2010, 02:08     if не правильно ратотает #6
вот я переделал вроде сравневает номер правельно выводит а имя следующее берет
Потому что когда ты сортируешь, то имена переставляешь местами, а номера и типы нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2010, 02:21     if не правильно ратотает
Еще ссылки по теме:

Правильно? C++
Программа правильно сохраняет, но не правильно считывает матрицу из файла C++
C++ Как правильно вписать функцию в h-файл и правильно её отразить в основной функции?

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

Или воспользуйтесь поиском по форуму:
//Александр
 Аватар для //Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
23.09.2010, 02:21  [ТС]     if не правильно ратотает #7
точно сейчас исправлю

Добавлено через 10 минут
Всем огромное спасибо за помощь все работает!!!!
Yandex
Объявления
23.09.2010, 02:21     if не правильно ратотает
Ответ Создать тему
Опции темы

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