正如标题所说,我不想使用系统("暂停"),因为我不想发展一个糟糕的习惯。 即使我有cin.get();
,我也无法弄清楚为什么它会一直关闭#include <iostream>
using namespace std;
float medel(int v[], int n)
{
float res = 0.0;
for (int i = 0; i < n; i++)
{
cin >> v[i];
res += ((double)v[i] / n);
}
return res;
}
int main() {
const int num = 10;
int n[num] = { 0 };
cout << "Welcome to the program. Enter 10 positive numbers: " << endl;;
cin.get();
cout << "The average of ten numbers entered is: " << medel(n, num) << endl;
cin.get();
return 0;
}
答案 0 :(得分:4)
cin.get()
会消耗输入流中的单个字符。
如果还没有,那么程序将阻止等待一个,这是您的期望。
然而,其中 一个:在您上一次cin >> v[i]
操作之后 Enter keypress中的换行符。
Don't use cin.get()
to keep your application running at the end, anyway
顺便说一下,你的程序逻辑是有缺陷的;你似乎提示正数,然后在实际要求任何输入之前引入输出。
这样的事情怎么样:
int main()
{
const int num = 10;
int n[num] = { 0 };
cout << "Welcome to the program. Enter " << num << " positive numbers: " << endl;
const float average = medel(n, num);
cout << "The average of the numbers entered is: " << average << endl;
}
找到一个方法在之外的方式,以保持终端窗口打开,如果它还没有。这不是你的计划的工作。