dino_fei 2022-10-04 08:32 采纳率: 0%
浏览 25

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

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

#include<stdio.h>
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");
  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-04 08:51
    关注

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

    评论

报告相同问题?

问题事件

  • 创建了问题 10月4日

悬赏问题

  • ¥15 c#:vsto,powerpoint的外接程序中换主题颜色
  • ¥15 状态机/汽车转向灯/Sateflow
  • ¥15 这个有点复杂 有没有人看看
  • ¥15 用python如何确定子孙元素在父元素中的位置
  • ¥15 obj文件滤除异常高程
  • ¥15 用mathematicas或者matlab计算三重积分
  • ¥15 Loop unrolling的runtime计算
  • ¥100 NVMe-oF的Target端,开启attr_offload后,测试失败。
  • ¥100 有偿照片马赛克去掉,保留原始数据
  • ¥15 c# winform http报错,如何解决?