проблема с функцией потолка в C ++ - PullRequest
3 голосов
/ 03 марта 2011

Я беру вступление к уроку программирования.Нам не нужно писать реальный код, но мы получаем дополнительный кредит, если мы делаем.Мы используем Raptor для наших потоковых диаграмм, и вы можете сгенерировать код C ++ оттуда, и с некоторыми изменениями получить рабочий код.Я использую Visual Studio 2008 для кода мод и сборки.В среднесрочной перспективе у меня проблема с парковкой.Комментарии объясняют, что делает программа, и она прекрасно работает, за исключением одной ошибки: я получаю сообщение о том, что идентификатор «потолка» не найден в строке 70. Вот код:

// midterm part 2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <string>

void getTime (float &time);
void getAge (int &age);
void calcFee (float time, double &fee);

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
   double discount;
   double fee;
   float time;
   int age;

   cout << "This program gets the amount of time parked and calculates the total fee for parking." <<endl;
   cout << "The rate is $1.00 for the first hour or part thereof, and $0.75 for each additional" <<endl;
   cout << "hour or part thereof.  The minimum fee is $1.00.  The maximum fee is $10.00." <<endl;
   cout << "Those over 55 years of age receive a 10% discount, except on the minimum." << endl;
   getTime(time);
   getAge(age);
   calcFee(time,fee);
   if (fee>10)
   {
      fee = 10;
   }
   else
   {
      fee = fee;
   }
   if (age>=55 && fee>1)
   {
      discount =fee*0.1;
   }
   else
   {
      discount =0;
   }
   fee =fee-discount;
   cout << "Your total fee for parking is $"<<fee<<"." << endl;
   return 0;
}

void getTime (float &time)
{
   string raptor_prompt_variable_zzyz;

   raptor_prompt_variable_zzyz ="Enter the number of hours parked.";
   cout << raptor_prompt_variable_zzyz << endl;
   cin >> time;
}

void getAge (int &age)
{
   string raptor_prompt_variable_zzyz;

   raptor_prompt_variable_zzyz ="What is the age of the driver?";
   cout << raptor_prompt_variable_zzyz << endl;
   cin >> age;
}

void calcFee (float time, double &fee)
{
   float HOURLY_RATE = 0.75;

   time = ceiling(time);
   if (time==0)
   {
      fee =0;
   }
   else
   {
      fee =1+((time-1)*HOURLY_RATE);
   }
}

Я неэксперт по кодам, поэтому, если этот код не идеален, я бы этого не знал.Я могу взять строку "время = потолок (время);"из кода, и он прекрасно строит.Он просто не будет рассчитывать так, как должен.В этой ситуации инструктор предпочитает использовать функцию потолка, но если есть другой метод, я бы посмотрел на это.Заранее благодарим за любую помощь, которая может быть предложена.

Ответы [ 2 ]

7 голосов
/ 03 марта 2011

Функция потолка называется ceil в C ++. #include <cmath> чтобы использовать его.

2 голосов
/ 03 марта 2011

C ++ имеет функцию ceil, которая точно такая же, как "потолок".Чтобы использовать его, вам просто нужно импортировать его библиотеку, например:

/* ceil example */
#include <stdio.h>
#include <math.h>

int main ()
{
  printf ("ceil of 2.3 is %.1lf\n", ceil (2.3) );
  return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...