2 / 1 / 3
Регистрация: 10.03.2010
Сообщений: 65
1

Оператор If

10.11.2011, 21:45. Показов 439. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток.
Такой вопрос, мне нужно задать условие :
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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2011, 21:45
Ответы с готовыми решениями:

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые...

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это оператор расширения области...

8
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
10.11.2011, 21:47 2
Цитата Сообщение от ivan777 Посмотреть сообщение
if ((baza[i].time) >= 30) && (baza[i].price < 1)
закрывающую скобку потерял
0
2 / 1 / 3
Регистрация: 10.03.2010
Сообщений: 65
10.11.2011, 21:50  [ТС] 3
Цитата Сообщение от Jupiter Посмотреть сообщение
закрывающую скобку потерял
Всеровно не работает, если вот так записать
C++
1
((baza[i].time) >= 30) && (baza[i].price) < 1)
Тогда на 2 ошибки больше
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
10.11.2011, 21:51 4
C++
1
if ( (baza[i].time >= 30) && (baza[i].price < 1) )
0
2 / 1 / 3
Регистрация: 10.03.2010
Сообщений: 65
10.11.2011, 21:54  [ТС] 5
Jupiter,
Не помогло(

error C2446: '<' : no conversion from 'int' to 'char *'
error C2040: '<' : 'char [20]' differs in levels of indirection from 'int'
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
10.11.2011, 21:58 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];
0
2 / 1 / 3
Регистрация: 10.03.2010
Сообщений: 65
10.11.2011, 22:02  [ТС] 7
Jupiter, И что сделать? Если я уберу [20] прога то компилируется, но нормально работать не будет ...
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
10.11.2011, 22:07 8
Цитата Сообщение от ivan777 Посмотреть сообщение
И что сделать?
для начала объясните себе, почему у вас цена - символьный массив, а не число с плавающей точкой
0
2 / 1 / 3
Регистрация: 10.03.2010
Сообщений: 65
10.11.2011, 22:19  [ТС] 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;
}
0
10.11.2011, 22:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2011, 22:19
Помогаю со студенческими работами здесь

Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->?
#include &lt;iostream&gt; using namespace std; class random { public: void Set(int b){a=b;} int...

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры.
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n...

Оператор break как оператор go to next
Подскажите, в этом примере break эквивалентна действию оператора go to next?

Как перегрузить оператор<< и оператор>> ?
Доброго времени суток. Застрял на двух вопросах и не как не могу найти инфу которвя мне помогла бы...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru