为什么要求输入4而不是3?

时间:2018-10-24 13:56:29

标签: c

为什么要输入4个输入而不是3个? 我在程序中只使用了3个scanf。 这是一个有关在3个变量中找到最小和最大数目的程序。 请帮助...

#include <stdio.h>
int main()

{
    int first, second, third;
    printf("Enter 3 integers for compare:");
    scanf("%d\n",&first);
    scanf("%d\n",&second);
    scanf("%d\n",&third);
    if((first>second) && (first>third))
        printf("First number is the largest\n");
    else if((second>first) && (second>third))
        printf("Second number is the largest\n");
    else if((third>second) && (third>first))
        printf("\nThird number is the largest\n");

    if((first<second) && (first<third))
        printf("First number is smallest\n");
    else if((second<first) && (second<third))
        printf("Second number is smallest\n");
    else if((third<second) && (third<first))
        printf("Third number is smallest\n");

    return 0;
}

1 个答案:

答案 0 :(得分:1)

让我们最后一次拨打scanf

scanf("%d\n",&third);

格式字符串末尾的"\n"意味着scanf函数将在输入后读取并丢弃任何空白,但是直到空白在那里结束时它才知道是不是空白字符。这意味着您需要输入一些额外的输入内容才能使scanf满意。

因此,简单的解决方案是在scanf格式字符串中不要包含换行符。