はるはるはる
2017-11-20 15:21
采纳率: 25%
浏览 7.9k
已采纳

C语言:输入10个数,输出最大值

请问为什么我要输入11个数才能运行?请问我应该怎么改?图片图片

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

16条回答 默认 最新

  • astemf 2017-11-20 20:42
    已采纳

    scanf 不需要\n
    scanf加了\n后,你输入一个数后,它是不会立即显示要等再接收到一个非(空格、制表符、回车)的输入scanf语句才结束。

    点赞 评论
  • long085 2017-11-20 15:38

    程序没毛病。编译器的问题吧。

    点赞 评论
  • yqmrush 2017-11-20 15:42

    你把scanf中的\n去掉

    点赞 评论
  • yqmrush 2017-11-20 15:45

    可能是它需要10个换行 然后就要输入11个数

    点赞 评论
  • 史迪仔的爸爸 2017-11-20 15:50

    scanf中的\n去掉,不需要这个。

    点赞 评论
  • 程序员狗蛋 2017-11-20 16:00

    命令行的回车作为输入的标识,scanf里不需要\n,与命令行的输入命令冲突了。
    以后遇到这种问题,可自己输出日志排查,比如:
    printf("========\n");
    for(i=0; i<10; i++)
    {
    printf("-=-=-=%d\n", i);
    scanf("%d\n", &a[i]);
    printf("-----%d\n", a[i]);
    }
    你会发现第一次输入1时,回车后,printf("-----%d\n", a[i]);这行并未打印,直到第二次输入回车才打印。
    这就会联想到跟\n有关系,然后思考解决。

    点赞 评论
  • qq_29318989 2017-11-20 17:33

    命令行的回车作为输入的标识,scanf里不需要\n,与命令行的输入命令冲突了。
    以后遇到这种问题,可自己输出日志排查,比如:
    printf("========\n");
    for(i=0; i<10; i++)
    {
    printf("-=-=-=%d\n", i);
    scanf("%d\n", &a[i]);
    printf("-----%d\n", a[i]);
    }
    你会发现第一次输入1时,回车后,printf("-----%d\n", a[i]);这行并未打印,直到第二次输入回车才打印。
    这就会联想到跟\n有关系,然后思考解决。

    点赞 评论
  • Insist_bin 2017-11-20 23:44

    命令行的回车作为输入的标识,scanf里不需要\n,与命令行的输入命令冲突了,不能加\n

    点赞 评论
  • 清风不识字12138 2017-11-21 01:27

    去掉scanf里的\n

    点赞 评论
  • Dingfangwang 2017-11-21 02:16

    int scanf(const char * restrict format,...);
    函数原型如上,输入参数里面是没有'\n'的

    点赞 评论
  • weixin_41127192 2017-11-21 08:44

    命令行的回车作为输入的标识,scanf里不需要\n,与命令行的输入命令冲突了

    点赞 评论
  • gao_qj 2017-11-21 11:35

    命令行的回车作为输入的标识,scanf里不需要\n,与命令行的输入命令冲突了

    点赞 评论
  • asdafas1 2017-12-12 10:23

    因为你的scanf的\n与系统跳出冲突

    点赞 评论
  • 小铧 2018-02-01 09:36

    建议把10换成Num不然就浪费了

    点赞 评论
  • 命令行的回车作为输入的标识,scanf里不需要\n,与命令行的输入命令冲突了
    print打法好

    点赞 评论
  • 忽明忽暗的云朵 2018-07-10 11:02

    注意\n的使用,从终端键盘像计算机输入时,不是输入一个字符立马输出一个,而是是在按enter后数据才送入内存缓冲区,然后每次从缓冲区读一个字符,在输出该字符

    点赞 评论

相关推荐 更多相似问题