我正在尝试在第二个循环中输入“输入帐号”。如果我在“While”控制结构中输入“输入帐号”。它会在第一个循环中打印两次。那么我该如何解决这个问题?
/* Make a program that will determine if a department store customer has exceeded the
credit limit on a charge account*/
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int aNum,Always;
double balance,iTotal,cTotal,cLimit,NewBal;
cout << "Enter account number: ";
cin >> aNum;
while ( aNum != -1 )
{
cout << "Enter beginning balance: ";
cin >> balance;
cout << setiosflags( ios::fixed | ios::showpoint ) << setprecision( 2 );
cout << "Enter total charges: ";
cin >> iTotal;
cout << setiosflags( ios::fixed | ios::showpoint ) << setprecision( 2 );
cout << "Enter total credits: ";
cin >> cTotal;
cout << setiosflags( ios::fixed | ios::showpoint ) << setprecision( 2 );
cout << "Enter credit limit: ";
cin >> cLimit;
cout << setiosflags( ios::fixed | ios::showpoint ) << setprecision(2);
cout << endl;
NewBal = balance + iTotal - cTotal;
if ( NewBal >= cLimit ) {
cout << "Account: " << setw(9) << aNum << endl;
cout << "Credit limit: " << cTotal << endl;
cout << "Balance: " << setw(9) << balance << endl;
cout << "Credit limit exceeded." << endl;
cout << endl;
}
}
return 0;
}
答案 0 :(得分:1)
我会像这样构建代码:
while(true)
{
cout << "Enter account number: ";
cin >> aNum;
if(aNum==-1) break;
// ... Rest of your while loop ...
}
答案 1 :(得分:0)
尝试使用以下代码
/* Make a program that will determine if a department store customer has exceeded the
credit limit on a charge account*/
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int aNum,Always;
double balance,iTotal,cTotal,cLimit,NewBal;
do
{
cout << "Enter account number: ";
cin >> aNum;
if(aNum != -1)
{
cout << "Enter beginning balance: ";
cin >> balance;
cout << setiosflags( ios::fixed | ios::showpoint ) << setprecision( 2 );
cout << "Enter total charges: ";
cin >> iTotal;
cout << setiosflags( ios::fixed | ios::showpoint ) << setprecision( 2 );
cout << "Enter total credits: ";
cin >> cTotal;
cout << setiosflags( ios::fixed | ios::showpoint ) << setprecision( 2 );
cout << "Enter credit limit: ";
cin >> cLimit;
cout << setiosflags( ios::fixed | ios::showpoint ) << setprecision(2);
cout << endl;
NewBal = balance + iTotal - cTotal;
if ( NewBal >= cLimit ) {
cout << "Account: " << setw(9) << aNum << endl;
cout << "Credit limit: " << cTotal << endl;
cout << "Balance: " << setw(9) << balance << endl;
cout << "Credit limit exceeded." << endl;
cout << endl;
}
}
}while ( aNum != -1 );
return 0;
}
希望它有所帮助...