scanf相对循环的位置不同带来的不同结果

在编写程序时,我开始是把**scanf_s("%lf", &s);放在循环外面,结果输出的答案不论几个,仅为一个字母的循环。后来我将scanf_s("%lf", &s);**放在循环里面,程序恢复正常。
同学猜想前者是因为程序中只有输入的第一个数值在不断循环,后面的数值不能进入循环。请问这是什么原理呢?谢谢!

#include
int main()
{
int n, i;
double s;
scanf_s("%d", &n);
printf("%d", n);
for (i = 1; i <= n; i++) {

scanf_s("%lf", &s);

    if (s >= 90.0)
        printf("A");
    else if (s >= 80.0)
        printf("B");

放在循环里才能不断进行scanf输入字符啊。放在循环外就输入了一次,当然一直输出同样的字符了

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^