简体   繁体   English

C ++中天花板功能的问题

[英]problem with ceiling function in C++

I am taking an Intro to Programming class. 我正在参加编程课程的介绍。 We do not have to write actual code, but we get extra credit if we do. 我们不必编写实际的代码,但如果我们这样做,我们会得到额外的信任。 We use Raptor for our flowcharts, and you can generate C++ code from there, and with some modification get working code. 我们使用Raptor作为流程图,您可以从那里生成C ++代码,并通过一些修改获得工作代码。 I use Visual Studio 2008 for the code mod and build. 我使用Visual Studio 2008进行代码mod和构建。 For the midterm, I have a parking problem. 对于期中考试,我有停车问题。 The comments explain what the program does, and it builds fine except for one error: I get a message saying that 'ceiling' identifier not found on line 70. Here is the code: 这些评论解释了程序的功能,除了一个错误之外它构建得很好:我收到一条消息,说第70行找不到'ceiling'标识符。这是代码:

// 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);
   }
}

I am no code expert, so if this code is not perfect, I would not know it. 我不是代码专家,所以如果这段代码不完美,我就不会知道。 I can take the line "time = ceiling(time);" 我可以采取“时间=天花板(时间);” out of the code, and it builds fine. 超出代码,它构建良好。 It just will not calculate the way it should. 它只是不会计算应该的方式。 The instructor prefers the use of the ceiling function in this situation, but if there is another method, I would look at that. 在这种情况下,教练更喜欢使用天花板功能,但如果有另一种方法,我会看一下。 Thanks in advance for any help that can be offered. 提前感谢您提供的任何帮助。

Ceiling function is called ceil in C++. Ceiling函数在C ++中称为ceil #include <cmath> to use it. #include <cmath>使用它。

C++ has the ceil function which is exactly the same as "ceiling". C ++具有ceil函数,它与“ceiling”完全相同。 To use it, you just need to import it's library, like this : 要使用它,您只需要导入它的库,如下所示:

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

int main ()
{
  printf ("ceil of 2.3 is %.1lf\n", ceil (2.3) );
  return 0;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM