1

例如,当我为 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;
}
4

3 回答 3

3

去掉换行符:\n,在你的scanf格式字符串中,或​​者只使用一个scanf,例如:

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

或者:

scanf ("%i", &a);
scanf ("%i", &b);
于 2012-06-22T18:18:09.763 回答
1

scanf()不需要"\n".

scanf ("%i", &a);
scanf ("%i", &b);
于 2012-06-22T18:17:42.517 回答
1

您应该在调用scanf.

于 2012-06-22T18:17:56.657 回答