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

If else statement - C++

Восстановить пароль Регистрация
 
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
18.09.2012, 08:40     If else statement #1
Стоит задача пл году машины и весу присвоить весовой номер и стоимость (таксы).

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
86
87
88
89
#include <iostream>
using namespace std;
 
int main( )
{
   
    int year, weight, weight_class;
    double fee;  
    
      
    printf("Please enter a year: ");
    scanf("%d", &year);
    
    printf("Please enter a weight: ");
    scanf("%d", &weight);
    
   
    
    if (year <= 1970)
    {
             if (weight < 2700)
             {
             weight_class = 1;
             fee = 16.50;
             }
             
             else if (2700 <= weight <= 3800)
             {
             weight_class = 2;
             fee = 25.50;
             }
             
             else 
             {
             weight_class = 3;
             fee = 46.50;
             }
    }        
             
    else if (1971 <= year <= 1979)
    {
             if (weight < 2700)
             {
             weight_class = 4;
             fee = 27.00;
             }
             
             else if (2700 <= weight <= 3800)
             {
             weight_class = 5;
             fee = 30.50;
             }
             
             else 
             {
             weight_class = 6;
             fee = 52.50;
             }
         
         }
         
         
    else 
    {
             if ( weight < 3800)
             {
             weight_class = 7;
             fee = 35.50;
             }
             
             else 
             {
             weight_class = 8;
             fee = 62.50;
             }
         
         }
             
    
    printf("\n The weight class is %d and fee $%3.2f \n\n", &weight_class);
    
    
    
    
   
      
    system ("Pause");
    return 0;  
}

Выдаёт просто ерунду.
Помогите пожалуйста разобраться.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
18.09.2012, 08:50     If else statement #2
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
else if (2700 <= weight <= 3800)
Данные записи логически не верны. С точки зрения математики - да, с точки зрения ЯП - нет. Результат всех операций сравниваний - bool. В итоге имеем что при вычислении первого сравнения ( 2700 <= weight ) результат будет 1 или 0, в зависимости от истинности/ложности выражения. Далее этот результат сравнивается с 3800. То есть в итоге будет или так ( 1 <= 3800 ) или так ( 0 <= 3800 ). То есть этот результат всегда будет истинным. Для выполнения Вашего условия необходима операция логического И. В итоге оператор будет иметь вид:
C++
1
if (2700 <= weight && weight <= 3800)
И так с каждым оператором.

PS: И да - пользуйтесь, пожалуйста, тегами форматирования кода.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.09.2012, 08:51     If else statement #3
QWERY_2012, код форматируйте когда выкладываете:
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
#include <iostream>
 using namespace std;
 
 int main( )
 {
 int year, weight, weight_class;
 double fee; 
 
 printf("Please enter a year: ");
 scanf("%d", &year);
 
 printf("Please enter a weight: ");
 scanf("%d", &weight);
 
 if (year <= 1970)
 {
 if (weight < 2700)
 {
 weight_class = 1;
 fee = 16.50;
 }
 
 else if (2700 <= weight <= 3800)
 {
 weight_class = 2;
 fee = 25.50;
 }
 
 else 
 {
 weight_class = 3;
 fee = 46.50;
 }
 } 
 
 else if (1971 <= year <= 1979)
 {
 if (weight < 2700)
 {
 weight_class = 4;
 fee = 27.00;
 }
 
 else if (2700 <= weight <= 3800)
 {
 weight_class = 5;
 fee = 30.50;
 }
 
 else 
 {
 weight_class = 6;
 fee = 52.50;
 }
 
 }
 
 else 
 {
 if ( weight < 3800)
 {
 weight_class = 7;
 fee = 35.50;
 }
 
 else 
 {
 weight_class = 8;
 fee = 62.50;
 }
 
 }
 
 
 printf("\n The weight class is %d and fee $%3.2f \n\n", &weight_class);
 
 system ("Pause");
 return 0; 
 }
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
18.09.2012, 08:56  [ТС]     If else statement #4
Ok!!!
Спасибо огромное!!!
Yandex
Объявления
18.09.2012, 08:56     If else statement
Ответ Создать тему
Опции темы

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