麦浪佛罗 2023-11-14 22:53 采纳率: 90.5%
浏览 3
已结题

循环语句的结束条件,输入


#include<stdio.h>
#include<math.h>
int main()
{
    int i = 1, a[40];
    long long int sum = 0;
    while (scanf_s("%d", &a[i]) != '\n')
    {
        sum += a[i];
        i++;
    }
    sum = sum * pow(2, i - 1);
    printf("%lld", sum);
    return 0;
}

为啥我代码一运行一直输个不停比如我就只想输入2 3
然后回车就结束了,但为啥我按了回车还是没用,就一直喊我输入,我那个循环该咋个结束

  • 写回答

2条回答 默认 最新

  • 柯本 2023-11-14 23:04
    关注

    你的scanf_s不可能返回车的
    scanf_s的返回值,要么是0(输入出错,如你的,输入了非数字),要么是EOF(windows 下输入ctrl+Z)或数值(你的正常输入的话,返回为1)
    一般建议用EOF结束多组数据的输入(也就是输入ctrl+Z)
    若要以回车结束你的输入,要另外处理的(如用getchar()判断 )。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月22日
  • 已采纳回答 11月14日
  • 创建了问题 11月14日

悬赏问题

  • ¥15 github录制项目
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 如何解决调试dev-出++5.11不成功问题
  • ¥15 安装CentOS6时卡住
  • ¥20 关于#监控系统#的问题,如何解决?(相关搜索:系统软件)
  • ¥20 c语言写的8051单片机存储器mt29的模块程序
  • ¥60 求直线方程 使平面上n个点在直线同侧并且距离总和最小
  • ¥50 java算法,给定试题的难度数量(简单,普通,困难),和试题类型数量(单选,多选,判断),以及题库中各种类型的题有多少道,求能否随机抽题。