我目前正在为我所学的计算机科学从事家庭作业,并且我是C ++的新手。但是,当我编译程序时,它说它参数太多,无法执行'void results()'
有人可以解释一下如何解决此问题。您的时间将不胜感激。
以下是作业的说明
我需要创建一个程序,该程序实现将温度从任一刻度转换为另一刻度的相应值的功能。 用F代表华氏温度,C代表摄氏温度,使用以下公式在两个温度标度之间进行转换
F = 1.8C +32 C = F-32 / 1.8
程序必须提示用户进行初始温度的比例和度测量,并同时显示所提供温度的华氏度和摄氏度,并四舍五入到小数点后两位。如果为秤或温度提供了不合适的输入,则程序必须显示适当的错误消息并终止执行而不会显示任何结果。温度标尺的适当输入将取决于如何获取信息。合适的温度是大于或等于绝对零的任何值,即-459.67 F或-273.15 C。
程序的主要功能只能包含变量声明和函数调用。要至少处理数据,您的程序必须为以下每个任务正确使用适当的功能,尽管您可以根据需要添加尽可能多的其他功能:
1。显示简短的概述和/或向用户解释程序的指令集
2。让用户输入使用的温度标尺
3。让用户输入初始温度读数
4。将华氏温度转换为摄氏
5。将摄氏温度转换为华氏温度
6。显示结果
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
// Prototype
void overView();
void results();
char tempScale();
float tempReading();
float convertFtoC(float);
float convertCtoF(float);
int main(){
overView ();
cout << setprecision (2) << fixed;
float degree = tempReading();
char scale = tempScale();
float fahrenheit, celsius;
if(scale == 'F'){
celsius = convertFtoC(degree);
fahrenheit = degree;
}
else if (scale == 'C'){
fahrenheit = convertCtoF(degree);
celsius = degree;
}
else{
cout << "***Error: Invalid temperature Scale Please try again!" << endl;
return 0;
}
results(fahrenheit, celsius);
return 0;
}
// this function was build to give an overview to the user explaining the program
void overView(){
cout << "This program will convert a temperature reading provided in" << endl;
cout << "either Fahrenheit or Celsius to the other measurement scale." << endl;
cout << "------------------------------------------------------------" << endl;
cout << endl;
}
// this function was build to ask the user to chose the temperature scale
char tempScale(){
char scale;
cout << "Please chose the temperature scale that you wish to use (F = Fahrenheit; C = Celsius): ";
cin >> scale;
return scale;
}
// this function was build to ask the user to enter the temperature reading in degree
float tempReading(){
float degree;
cout << "Please enter your temperature reading (in degrees): ";
cin >> degree;
return degree;
}
// This function was build to converts a Fahrenheit temperature to celsius
float convertFtoC(float fahrenheit){
float celsius;
celsius = (fahrenheit - 32) / 1.8;
return celsius;
}
// This function was build to converts a Celsius temperature to Fahrenheit
float convertCtoF(float celsius){
float fahrenheit;
fahrenheit = 1.8 * (celsius + 32);
return fahrenheit;
}
// This function will display the results to the user
void results(float fahrenheit, float celsius){
cout <<"Your temperature reading converts as follows:" << endl;
cout << "Fahrenheit: " << fahrenheit << endl;
cout << "Celsius: " << celsius << endl;
}
答案 0 :(得分:1)
您的原型没有参数,因此C ++认为您做错了(期望没有输入)。
更改:
// Prototype
void overView();
void results();
到
// Prototype
void overView();
void results(float fahrenheit, float celsius);
应该修复它! C ++倾向于比实现更重视原型。在C中也会发生这种情况。
答案 1 :(得分:1)
在前向函数声明中,将void results();
更改为void results(float, float);
。该错误基本上是在说“您定义了一个没有参数的函数,但是您正在使用两个参数调用它”。