此代码接受学生识别和他们当前余额的输入。 -999被输入为A号码以打破循环,否则它将一直运行,直到输入30名学生。循环输出不显示
我在程序底部的for循环应该按输入的相反顺序列出输入的A编号,学生名称和它们的平衡。尽管没有列出任何内容。只是头号的A - 编号:,学生:,和平衡:
我知道有一个简单的解释,但我只是想不到,我希望有人可以为我指出...
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main(){
const int maxStudents = 30;
struct Students{
string studentName;
int aNumber;
double outstandingBalance;};
Students students[maxStudents];
int count = 0;
for(; count < maxStudents-1; count++)
{
cout<<"\nA-Number:";
cin>>students[count].aNumber;
if(students[count].aNumber == -999)
break;
cout<<"Student Name:";
cin.ignore();
getline(cin,students[count].studentName);
cout<<"\nOutstanding Balance:";
cin>>students[count].outstandingBalance;
}
cout<<setw(20)<<"\nA-Number "<<"Name "<<"Balance ";
for(; count >= maxStudents-1; count--)
cout<<setw(20)<<students[count].aNumber<<" "<<students[count].studentName<<" "<<students[count].outstandingBalance<<endl;
system("pause");
return 0;
}
“请*裸*与我” - 但我甚至不知道你! – 2012-02-02 22:55:50
假设你想从当前的倒计数开始迭代,只要它大于或等于零:你的计数永远不会比最大数量的学生大。 – 2012-02-02 22:59:03
iostreams通常被缓冲,所以你可能想看看刷新以确保输出写入时,你也期望它... – 2012-02-02 23:12:39