如何解决嵌套 for 循环程序的问题?
How can I fix my issue with my nested for loop program?
我程序的结尾应该显示我可以使用五分硬币、10 美分、25 美分和 50 美分找零 1 美元的方法数量。每当我 运行 我的程序时,它都会给我一个非常大的数字,我不知道为什么。它应该在 40 左右(我估计)但是每当我 运行 它我得到 2686964 种方式。这是我的程序:
//Program to display the number of ways to make change for a dollar
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
int nickels,dimes,quarts,fifcents,way;
double totalCents;
cout<<setw(8)<<"Nickels"<<setw(7)<<"Dimes"<<setw(9)<<"Quarters"<<setw(12)<<"Fifty-Cents"<<endl;
for(nickels=0;nickels<=20;nickels++)
{
for(dimes=0;dimes<=10;dimes++)
{
for(quarts= 0; quarts<=4; quarts++)
{
for(fifcents = 0; fifcents <=2; fifcents++)
{
totalCents=(nickels*5)+(dimes*10)+(quarts*25)+(fifcents*50);
if(totalCents==100)
{
cout<<setw(5)<<nickels<<setw(7)<<dimes<<setw(7)<<quarts<<setw(10)<<fifcents<<endl;
way++;
}
}
}
}
}
cout<<"There are "<<way<<" ways to make change for a dollar using using nickels, dimes, quarters and fifty-cents."<<endl;
}
你需要用0初始化方法,也就是说,在程序开始时给它赋0 way = 0;
未初始化的变量在声明时可能包含任何内容
我程序的结尾应该显示我可以使用五分硬币、10 美分、25 美分和 50 美分找零 1 美元的方法数量。每当我 运行 我的程序时,它都会给我一个非常大的数字,我不知道为什么。它应该在 40 左右(我估计)但是每当我 运行 它我得到 2686964 种方式。这是我的程序:
//Program to display the number of ways to make change for a dollar
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
int nickels,dimes,quarts,fifcents,way;
double totalCents;
cout<<setw(8)<<"Nickels"<<setw(7)<<"Dimes"<<setw(9)<<"Quarters"<<setw(12)<<"Fifty-Cents"<<endl;
for(nickels=0;nickels<=20;nickels++)
{
for(dimes=0;dimes<=10;dimes++)
{
for(quarts= 0; quarts<=4; quarts++)
{
for(fifcents = 0; fifcents <=2; fifcents++)
{
totalCents=(nickels*5)+(dimes*10)+(quarts*25)+(fifcents*50);
if(totalCents==100)
{
cout<<setw(5)<<nickels<<setw(7)<<dimes<<setw(7)<<quarts<<setw(10)<<fifcents<<endl;
way++;
}
}
}
}
}
cout<<"There are "<<way<<" ways to make change for a dollar using using nickels, dimes, quarters and fifty-cents."<<endl;
}
你需要用0初始化方法,也就是说,在程序开始时给它赋0 way = 0;
未初始化的变量在声明时可能包含任何内容