拒绝碳水的程序猿 2023-01-05 10:21 采纳率: 33.3%
浏览 39

关于C语言中的scanf的输入问题和循环问题?

解决这个问题:
输入一个整数n和n个整数,输出这n个整数的最大值。

输入
输入有两行:第一行是一个正整数n,第二行是n个整数。

输出
输出包含一个整数,即n个数中的最大值,单独占一行。

样例输入 Copy
4
3 7 5 6
样例输出 Copy
7

我写了这段代码:

#include<stdio.h>
int main()
{
    int i;
    int n;
    scanf("%d", &n);
    int max=0;
    int num;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &num);
        if (i == 0)
        {
            max = num;
        }
        if(max<num)
        {
            max = num;
        }
    }
    printf("%d", max);


    return 0;
}

第二行的数据为什么用空格隔开就能跑成功呢?

然后我又用回车一个数据占一行,同样也可以跑才成功。

如果按照第一种的情况,那么循环是怎么进行的(空格就能让循环进行依次吗?)

  • 写回答

4条回答 默认 最新

  • 月亮-甲乙 2023-01-05 10:53
    关注

    对于整型数据的输入,scanf默认的分隔符为所有空白字符(空格、回车和table都属于空白字符)
    for循环里输入一个整型数据+空格表示当前这次循环输入完成,会执行下面的if,判断结束接着下一次循环,再输入。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月5日