1、 首先逻辑就不对,如2楼所说
2、 用 scanf 来判断输入是否为 '\n' 是不可能的,因为 scanf 在读取输入的时候,总是会跳过空白,除非是 scanf("%c", ch) ,所以这里需要用 getchar() 来实现

程序代码:
#include <stdio.h>
#include <ctype.h>
int get_max(int a, int b);
int main(void) {
    int input = 0, max;
    int c;
    // 用来计算输入个数
    int count = 0;
    // 用来标记上一个数是否输入完毕
    int flag = 0;
    printf("Please enter several positive integers:\n");
    while ((c = getchar()) != EOF) {
        if (isspace(c)) {
            if (flag) {
                ++count;
            }
            if (count == 0) {
                continue;
            }
            else if (count == 1) {
                max = input;
            }
            else {
                max = get_max(input, max);
            }
            input = 0;
            if (c == '\n') {
                break;
            }
        }
        else {
            input = input * 10 + c - '0';
            flag = 1;
        }
    }
    if (count > 0) {
        printf("The max input is : %d\n", max);
    }
    return 0;
}
int get_max(int a, int b) {
    return a > b ? a : b;
}
===
这里没有去处理非数值输入和负数~