Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2012, 01:47   #1
alex_len
 
Регистрация: 01.11.2012
Сообщений: 3
По умолчанию верная плата в C++

Код:
#include <iostream>

using namespace std;

float calculateCharges(float);

int main()
{
    float vremja;
    float summa;


{
    cout << "Vvedite vremja stojanki : " << endl;
    cin >> vremja;
}

summa = calculateCharges (vremja);
cout << "Plata" << endl;
cout << summa << endl;

system ("pause");
return 0;

}


float calculateCharges (float vremja)
{
      float summa;
      
      if (vremja > 0 && vremja <=3)
      summa = 2.00 ;
      else 
      if (vremja > 3 && vremja < 24)
      
      {
                 summa = ( vremja - 3 ) * 0.50 + 2.00 ; 
                 
                 if ( summa > 10 )
                 summa = 10.00; 
                 else
                 if ( vremja == 24 )
                 summa = 10.00 ;

                 
system ("pause");
return summa;
}}
Почему при вводе 1-3 не высвечивает плату верную ?
alex_len вне форума Ответить с цитированием
Старый 21.12.2012, 04:14   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

return suma; поставь за предпоследнюю скобку.
coNsept вне форума Ответить с цитированием
Старый 21.12.2012, 21:00   #3
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от alex_len Посмотреть сообщение
Почему при вводе 1-3 не высвечивает плату верную ?

Потому что, если б ты писал почеловичачьи, а не через жёпь, то ты бы сразу увидел, что:


Код:
float calculateCharges (float vremja)
{
    float summa;
    
    if (vremja > 0 && vremja <=3)  summa = 2.00 ;
    else if (vremja > 3 && vremja < 24)
    {
        summa = ( vremja - 3 ) * 0.50 + 2.00 ;                 
        if ( summa > 10 ) summa = 10.00; 
        else if ( vremja == 24 )  summa = 10.00 ;
                        
        return summa;  //<----- функция вернет корректное значение
    }
   
     //<----- что вернет функция, если исполняющий процесс окажется здесь?
}
Функция возвращает значение не во всех случаях.

Если компилятор не будет знать, что именно нужно вернуть из функции, то он имеет право вернуть мусор.


Мораль: форматируй код. Соблюдай отступы. Соблюдай фигурные скобочки. Пиши блин, грамотно.
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Звуковая плата Elenya Операционные системы общие вопросы 10 13.09.2020 20:54
Материнская плата #goodle Помощь студентам 1 20.11.2012 14:00
Материнская плата ytdbdvb Помощь студентам 1 12.03.2012 16:28
Сетевая плата Syltan Компьютерное железо 0 05.12.2009 12:34
Не верная работа автофильтра DsXack Microsoft Office Excel 2 06.11.2009 08:50