gpt4 book ai didi

C++打印给定分子和分母的小数

转载 作者:行者123 更新时间:2023-11-28 04:44:51 25 4
gpt4 key购买 nike

当我运行它时,我的小数得到了一个疯狂的数字。然后,我将使用完全相同的分子和分母再次运行它,它会给我一些不同的东西。我不知道 decimalValue 从哪里得到它正在使用的数字和分母。我希望它使用用户在程序开头被迫输入的那个。

我不知道我做错了什么。非常感谢任何帮助!

#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

void printLogo() {
cout << "logo here" << endl;
}

int AskFraction(int &numerator, int &denominator) {
cout << "Enter numerator: ";
cin >> numerator;
cout << "Enter denominator: ";
cin >> denominator;

while (denominator == 0 || denominator < 0) {
cout << "Denominator must be a number above zero." << endl;
cout << "Enter denominator: ";
cin >> denominator;
}

return numerator, denominator;
}

float DecimalValue(float &decimalValue, int numerator, int denominator) {
if (denominator != 0 && denominator > 0) {
decimalValue = numerator / denominator;
}

return decimalValue;
}

void PrintFraction(int numerator, int denominator) {
cout << numerator << "/" << denominator << endl;
}

int main(int numerator, int denominator, float decimalValue) {

printLogo();

AskFraction(numerator, denominator);

DecimalValue(decimalValue, numerator, denominator);
cout << "The decimal value is: " << decimalValue << endl;

PrintFraction(numerator, denominator);

system("pause");
return 0;
}

最佳答案

您的代码混合了各种概念。首先,您通过引用传递变量,然后尝试返回值。使用按引用传递或返回结果值。

float DecimalValue(float &decimalValue, int numerator, int denominator) {
if (denominator != 0 && denominator > 0) {
decimalValue = numerator / denominator;
}

return decimalValue;
}

这应该是:

void DecimalValue(float &decimalValue, int numerator, int denominator) {
if (denominator != 0 && denominator > 0) {
decimalValue = numerator / denominator;
}
}

或者

float DecimalValue(int numerator, int denominator) {
float decimalValue; //You should initialize this to a value. Decide this based on what you want to happen when the condition of the next if is false.
if (denominator != 0 && denominator > 0) {
decimalValue = numerator / denominator;
}

return decimalValue;
}

此外,您尝试返回两个值。如果您需要返回多个结果,则需要使用按引用传递。喜欢在:

int AskFraction(int &numerator, int &denominator) {
cout << "Enter numerator: ";
cin >> numerator;
cout << "Enter denominator: ";
cin >> denominator;

while (denominator == 0 || denominator < 0) {
cout << "Denominator must be a number above zero." << endl;
cout << "Enter denominator: ";
cin >> denominator;
}

return numerator, denominator;
}

这应该是:

void AskFraction(int &numerator, int &denominator) {
cout << "Enter numerator: ";
cin >> numerator;
cout << "Enter denominator: ";
cin >> denominator;

while (denominator == 0 || denominator < 0) {
cout << "Denominator must be a number above zero." << endl;
cout << "Enter denominator: ";
cin >> denominator;
}
}

更改我上面指出的内容并更正主要参数后的最终代码是:

#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

void printLogo() {
cout << "logo here" << endl;
}

void AskFraction(int &numerator, int &denominator) {
cout << "Enter numerator: ";
cin >> numerator;
cout << "Enter denominator: ";
cin >> denominator;

while (denominator == 0 || denominator < 0) {
cout << "Denominator must be a number above zero." << endl;
cout << "Enter denominator: ";
cin >> denominator;
}
}

void DecimalValue(float &decimalValue, int numerator, int denominator) {
if (denominator != 0 && denominator > 0) {
decimalValue = (float)numerator / denominator;
}

}

void PrintFraction(int numerator, int denominator) {
cout << numerator << "/" << denominator << endl;
}

int main() {
int numerator, int denominator, float decimalValue
printLogo();

AskFraction(numerator, denominator);

DecimalValue(decimalValue, numerator, denominator);
cout << "The decimal value is: " << decimalValue << endl;

PrintFraction(numerator, denominator);

system("pause");
return 0;
}

关于C++打印给定分子和分母的小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49459541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com