我需要一些货币计划方面的帮助

I need some helping with a currency program

本文关键字:计划 方面 帮助 货币      更新时间:2023-10-16

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
	int quarters;
	int dimes = (quarters * 5);
	int pennies = (quarters * 25);
	int nickles = (pennies / 10);
	cout << "Please enter the amount of quarters you wish to convert" << endl;
	cin >> quarters;
	cout << "Pennies = " << pennies << endl;
	cout << "Dimes = " << dimes << endl;
	cout << "Nickles = " << nickles << endl;
	cin.get();
	cin.get();
	return 0;
}

出于某种原因,我一直收到一个C4700错误,说quarters是一个未初始化的局部变量,但如果quarters是正在拍摄的内容,我该怎么办?我试着输入int quarters=0,但这把程序的计算搞砸了。有什么想法吗?

错误消息清楚地说明了问题所在。您已经声明了quarters,但在使用它之前尚未进行初始化。把这个

cout << "Please enter the amount of quarters you wish to convert" << endl;
cin >> quarters;

之前

int dimes = (quarters * 5);
int pennies = (quarters * 25);
int nickles = (pennies / 10); 

初始化变量quarters,然后在计算中使用它。

int quarters;
cout<<"Please enter the amount of quarters you wish to convert" << endl;
cin>>quarters;
int dimes = (quarters * 5);
int pennies = (quarters * 25);
int nickles = (pennies / 10);

试试这个:

int main()
{
    int quarters;
    int dimes;
    int pennies;
    int nickles;
    cout << "Please enter the amount of quarters you wish to convert" << endl;
    cin >> quarters;
    dimes = (quarters * 5);
    pennies = (quarters * 25);
    nickles = (pennies / 10);
    cout << "Pennies = " << pennies << endl;
    cout << "Dimes = " << dimes << endl;
    cout << "Nickles = " << nickles << endl;
    cin.get();
    cin.get();
    return 0;
}

正如其他人所说,您必须在使用输入之前获得它,例如:

int quarters;
cout << "Please enter the amount of quarters you wish to convert" << endl;
cin >> quarters;

然后,在此之后,您可以计算其他值:

int dimes = (quarters * 5);
int pennies = (quarters * 25);
int nickles = (pennies / 10);

也就是说,让我们看看为什么会发生这种情况。也许你认为,当你给一个变量分配一个"公式"(比如dimes = quarters * 5(时,这个值总是会被重新计算,就像Excel一样。C++并不是这样工作的:当你给一个变量赋值时,你不是在定义一个会自动更新的通用公式,而是在计算那一刻的结果程序从上到下运行。因此,当你到达定义dimespenniesnickles的行时,你就得到了quarters的值(尚未定义(,并试图用它来计算其他变量。在这里,程序停止,但如果它继续,并且到达cin的行,它确实会将值存储在quarters中,但其他3个变量不会更新!