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

Оператор If - C++

Восстановить пароль Регистрация
 
ivan777
 Аватар для ivan777
2 / 1 / 1
Регистрация: 10.03.2010
Сообщений: 64
10.11.2011, 21:45     Оператор If #1
Всем доброго времени суток.
Такой вопрос, мне нужно задать условие :
baza[i].time >= 30 и в тоже время baza[i].price < 100000
чтобы вывести товар хранящихся больше месяца, стоимость которых превышает 100 000 р.
Но как это записать? Я так понял нужно использовать && но у меня что то не получается
Делаю так :

C++
1
if ((baza[i].time) >= 30) && (baza[i].price < 1)
Ругается
error C2143: syntax error : missing ';' before '&&'
error C2143: syntax error : missing ';' before '{'

как только дужки не ставил, ошибки .

Весь код

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
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;
 
int main ()
{  
    struct strc 
    {
        char name_tov[30]; 
        char kilkist[15]; 
        char price[20]; 
        int time;       
    };
 
    strc baza[100];
    int i,k;
    cout<<"Vvedite kilkist tovaru"<<endl;
    cin>>k;
    for (i=0; i<k; i++)
    {
        cout<<"Vvedite naemenyvanny tovary"<< endl;
        cin>>baza[i].name_tov;
        cout<<"Vvedite kilkist"<< endl;
        cin>>baza[i].kilkist;
        cout<<"Vvedite tciny za 1 sht"<< endl; 
        cin>>baza[i].price;
        cout<<"Vvedite daty postyplenia tovary"<< endl;
        cin>>baza[i].time;
    }
    char punkt[20]; 
    for (i=0; i<k; i++)
    {
    //if ((baza[i].time) > 30) //&& (baza[i].price) > l))
        if ((baza[i].time) >= 30) && (baza[i].price < 100000)
    {
        cout<<"Naemenyvanny tovary \n"<<baza[i].name_tov<<endl;
        cout<<""<<endl;
        cout<<"kilkist \n"<<baza[i].kilkist<<endl;
        cout<<""<<endl;
        cout<<"tciny za 1 sht \n"<<baza[i].price<<endl; 
        cout<<""<<endl;     
        cout<<"Na skladi \n"<<baza[i].time<<endl; 
        cout<<""<<endl; 
    }
    }
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.11.2011, 21:47     Оператор If #2
Цитата Сообщение от ivan777 Посмотреть сообщение
if ((baza[i].time) >= 30) && (baza[i].price < 1)
закрывающую скобку потерял
ivan777
 Аватар для ivan777
2 / 1 / 1
Регистрация: 10.03.2010
Сообщений: 64
10.11.2011, 21:50  [ТС]     Оператор If #3
Цитата Сообщение от Jupiter Посмотреть сообщение
закрывающую скобку потерял
Всеровно не работает, если вот так записать
C++
1
((baza[i].time) >= 30) && (baza[i].price) < 1)
Тогда на 2 ошибки больше
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.11.2011, 21:51     Оператор If #4
C++
1
if ( (baza[i].time >= 30) && (baza[i].price < 1) )
ivan777
 Аватар для ivan777
2 / 1 / 1
Регистрация: 10.03.2010
Сообщений: 64
10.11.2011, 21:54  [ТС]     Оператор If #5
Jupiter,
Не помогло(

error C2446: '<' : no conversion from 'int' to 'char *'
error C2040: '<' : 'char [20]' differs in levels of indirection from 'int'
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.11.2011, 21:58     Оператор If #6
Цитата Сообщение от ivan777 Посмотреть сообщение
Не помогло(
error C2446: '<' : no conversion from 'int' to 'char *'
error C2040: '<' : 'char [20]' differs in levels of indirection from 'int'
логично если
Цитата Сообщение от ivan777 Посмотреть сообщение
char price[20];
ivan777
 Аватар для ivan777
2 / 1 / 1
Регистрация: 10.03.2010
Сообщений: 64
10.11.2011, 22:02  [ТС]     Оператор If #7
Jupiter, И что сделать? Если я уберу [20] прога то компилируется, но нормально работать не будет ...
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.11.2011, 22:07     Оператор If #8
Цитата Сообщение от ivan777 Посмотреть сообщение
И что сделать?
для начала объясните себе, почему у вас цена - символьный массив, а не число с плавающей точкой
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2011, 22:19     Оператор If
Еще ссылки по теме:

C++ В Delphi есть оператор cost i of. и т.д. Есть ли в C++ такой же оператор?
C++ Оператор []

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

Или воспользуйтесь поиском по форуму:
ivan777
 Аватар для ivan777
2 / 1 / 1
Регистрация: 10.03.2010
Сообщений: 64
10.11.2011, 22:19  [ТС]     Оператор If #9
Цитата Сообщение от Jupiter Посмотреть сообщение
для начала объясните себе, почему у вас цена - символьный массив, а не число с плавающей точкой
Завтыкав) Но всеравно у меня что то не получается... Не работает иф

Вот код


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
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;
 
int main ()
{  
    struct strc 
    {
        char name_tov[30]; 
        char kilkist[15]; 
        float price; 
        int time; 
    };
     
    strc baza[100];
    int i,k;
    cout<<"Vvedite kilkist tovaru"<<endl;
    cin>>k;
    for (i=0; i<k; i++)
    {
        cout<<"Vvedite naemenyvanny tovary"<< endl;
        cin>>baza[i].name_tov;
        cout<<"Vvedite kilkist"<< endl;
        cin>>baza[i].kilkist;
        cout<<"Vvedite tciny za 1 sht"<< endl; 
        cin>>baza[i].price;
        cout<<"Vvedite daty postyplenia tovary"<< endl;
        cin>>baza[i].time;
    }
     cout<<"proverka = \n"<<baza[i].price<<endl;
    for (i=0; i<k; i++)
    {
        if ( (baza[i].time >= 30) && (baza[i].price < 100000) )
    {
        cout<<"Naemenyvanny tovary \n"<<baza[i].name_tov<<endl;
        cout<<""<<endl;
        cout<<"kilkist \n"<<baza[i].kilkist<<endl;
        cout<<""<<endl;
        cout<<"tciny za 1 sht \n"<<baza[i].price<<endl; 
        cout<<""<<endl;     
        cout<<"Na skladi \n"<<baza[i].time<<endl; 
        cout<<""<<endl; 
    }
    }
    return 0;
}
Yandex
Объявления
10.11.2011, 22:19     Оператор If
Ответ Создать тему
Опции темы

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