我想显示如下输出:
Count Input Total
----- ------ -----
1 2 2
2 4 6
3 6 12
4 8 20
Average : 5
这是我的尝试:
int count=1,num,total=0;
cout<<"Count Input Total"<<endl;
cout<<"----- ----- -----"<<"\n";
while(count<=4)
{
cout<<count<<"\t";
cin>>num;
total=total+num;
cout<<"\t\t"
<<total<<endl;
count++;
}
cout<<"Average : "
<<total/4;
return 0;
}
但它是这样的:
Count Input Total
----- ----- -----
1 2
2
2 4
6
3 6
12
4 8
20
Average : 5
--------------------------------
Process exited after 5.785 seconds with return value 0
Press any key to continue . . .
答案 0 :(得分:0)
您正在将程序的输出与键盘输入混合,两者都显示在同一控制台上。
cin&gt;&gt; num取得的控制台输入仅在您按下键盘上的“enter”后才会收到,而这又会导致屏幕上的输出转到下一行。< / p>
如果你想在屏幕上的下一行移动光标时禁止“输入”,这不能通过c ++轻松完成,通常在Linux或Windows或其他操作系统中有办法这样做(stty -echo) ,回声,等等)。但是那样也会抑制出现的类型整数,因此在你的代码中你需要在它们进来时将它们打印出来。
然而,人们通常不会尝试将键盘输出与程序输出混合成表格等连贯的东西。你的程序可以先简单地询问键盘输入,将输入存储到数组或向量中,然后使用该输入写入表格。很可能这就是问题要求你做的事情。
#include <iostream>
#include <vector>
using namespace std;
void output(vector<int> &vals) {
unsigned int count = 1;
int total = 0;
cout << "Count\tInput\tTotal" << endl;
cout << "-----\t-----\t-----" << endl;
while (count <= vals.size()) {
int num = vals[count - 1];
total += num;
cout << count << "\t" << num << "\t" << total << endl;
count++;
}
cout << "Average : " << total / (count - 1) << endl;
}
vector<int> input() {
vector<int> vals;
for (int i = 0; i < 4; i++) {
int num;
cin >> num;
vals.push_back(num);
}
return vals;
}
int main() {
output(input());
}
5
7
2
11
Count Input Total
----- ----- -----
1 5 5
2 7 12
3 2 14
4 11 25
Average : 6