不是/ n在scanf但程序仍然等待

时间:2014-11-05 18:04:13

标签: scanf

我在这里读到,scanf中的/ n使程序等待另一个输入。然而,我的程序在scanf中没有/ n但在输入数字后仍然等待另一个输入。不知道为什么。

#include <stdio.h>

int main()
{
int inputNumber, index = 2, lowestPrime = 1, number = 1;

printf("Enter an integer: ");
scanf("%d", &inputNumber);

if(scanf("%d", &inputNumber) != 1)
{ 
    printf("Invalid input");
    return 1;
}    
else
{
    printf(" The prime factorization of %d is",inputNumber);

    while(inputNumber > lowestPrime)
    { 
        if(inputNumber % index != 0)
        {
            index += 1;
        }   
        else
        {
            inputNumber = (inputNumber / index);
            printf(" %d", index);
        }
    }
} 
return 0;
}

1 个答案:

答案 0 :(得分:0)

你在这里两次调用scanf,一次是原始调用,一次是if语句。用

替换if括号内的语句
if (inputNumber!= 1)

你应该没事!