从键盘输入n个学生的考试成绩,分别统计出80-100,60-79和0-59分数段的人数。

while ((n=getchar())!='\n') 用这个的话只能输出一个字符 每一个都是0-59段

这个我不z知道怎么解决啊
#include
using namespace std;
void main()
{
int n,a=0,b=0,c=0,d=0;
while ((n=getchar())!='\n')
{
if(n>=80&&n<=100) a++;
if(n>=60&&n<=79) b++;
if(n>=0&&n<=59) c++;
else d++;
}
cout<<"则成绩在80-100之间的有"<<a<<"个"<<endl;
cout<<"则成绩在60-79之间的有"<<b<<"个"<<endl;
cout<<"则成绩在0-59之间的有"<<c<<"个"<<endl;
cout<<"则成绩输出错误的有"<<d<<"个"<<endl;
}

getchar只能接收一个字符,换成别的吧,cin或者scanf什么的

不用先输入n吗?可以这样改

 #include<iostream>
using namespace std;
void main()
{
    int n, a = 0, b = 0, c = 0, d = 0;
    while (1)
    {
        cin >> n;               //cin接收数字
        if (getchar() == '\n')  //getchar接收数字后的字符,如果是换行,就结束
            break;
        if (n >= 80 && n <= 100) a++;
        if (n >= 60 && n <= 79) b++;
        if (n >= 0 && n <= 59) c++;
        else d++;
    }
    cout << "则成绩在80-100之间的有" << a << "个" << endl;
    cout << "则成绩在60-79之间的有" << b << "个" << endl;
    cout << "则成绩在0-59之间的有" << c << "个" << endl;
    cout << "则成绩输出错误的有" << d << "个" << endl;
    return;
}