c++中怎么从终止循环输入,从而得出结果?(代码是教科书上的)

问题遇到的现象和发生背景

输入若干成绩,然后出各区间的成绩个数。

问题相关代码,请勿粘贴截图
#include <iostream>
using namespace std;
int main()
{
int i,n,n1,n2,n3;
double score;
cin>>n;
n1=0; n2=0; n3=0;
for(i=1;i<=n;i++)
{
  cin>>score;
  if(score>=85) n1+=1;
  else if(score>=60) n2+=1;
  else n3+=1;
}
cout<<"85~100:"<<n1<<endl;
cout<<"60~84:"<<n1<<endl;
cout<<"0~59:"<<n1<<endl;
}
运行结果及报错内容

就是让我一直输入,没办法输出统计的结果。。

我的解答思路和尝试过的方法
我想要达到的结果

有什么办法可以终止输入,然后出结果?

cin>>n;这里表示有多少个成绩
for(i=1;i<=n;i++)这里读取n个成绩,读取n个成绩后就结束循环,输出结果了


如果不知道有多少个成绩,可以在一行输入若干成绩,然后当输入回车符时结束。参考如下:

#include <iostream>
using namespace std;
int main()
{
    double score;
    while(1)
    {
        cin >> score;
        //其它处理
        //输入回车结束
        if(cin.get() == '\n')
            break;
    }
    return 0;
}

你第一个输入的就是你要输入多少个成绩,不是第一个人的成绩。一旦你输入的是第一个人的成绩,程序把它当做有多少人,可能就要循环几十次,输入几十个成绩才行。
16-18行分别输出n1,n2,n3,你写的都是n1