出现一个额外的输入

时间:2012-06-22 18:11:20

标签: c input scanf

例如,当我为num1输入2,为num2输入3时,输入​​第二个数字后,我希望输出为8。但是,程序希望我输入一个整数,我只输入一个像242这样的随机数,它仍然输出8,这意味着它不会影响结果。所以我的问题是为什么有第三个输入? 谢谢你的帮助!

#include "stdafx.h"

int Power (int num1, int num2);

int main ()
{
    int a, b;
    puts ("Enter two numbers, a and b:\n");  
    scanf ("%i\n", &a);
    scanf ("%i\n", &b);
    printf ("%i\n", Power(a, b));
    return 0;
}

int Power (int num1, int num2)
{
    int sum=1;
    for (int i=1; i<=num2; i++){
        sum= sum*num1;
    }
    return sum;
}

3 个答案:

答案 0 :(得分:3)

删除换行符\n,使用scanf格式字符串,或只使用一个scanf,例如:

scanf("%i%i", &a, &b);

或者:

scanf ("%i", &a);
scanf ("%i", &b);

答案 1 :(得分:1)

您的scanf()不需要"\n"

scanf ("%i", &a);
scanf ("%i", &b);

答案 2 :(得分:1)

您应该在调用scanf时从格式字符串中删除'\ n'。