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 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?