Must_so
输入多了“,”和“\n”按你的代码要输入2,2\n才能匹配上这样改:#include <stdio.h>
#include <math.h>
int main()
{
int a, n, j;
printf ("请输入两个数\n");
scanf ("%d%d", &n, &j);
if (j == 0)
{
a = 1;
}
else
{
a = pow (n, j);
}
printf ("%d\n", a);
return 0;
}或者你自己的代码这样输入:至于为什么是256你可以输出n和j试试,不难发现你错误的输入使得j没有赋值,局部变量没有赋值会是随机值,我的电脑上j的随机值是34:代码:#include <stdio.h>
#include <math.h>
int main()
{
int a, n, j;
printf ("请输入两个数\n");
scanf ("%d,%d\n", &n, &j);
if (j == 0)
{
a = 1;
}
else
{
a = pow (n, j);
}
printf("n = %d , j = %d\n",n,j);//debug输出中间结果
printf ("%d\n", a);
return 0;
}测试结果:另外注意pow的参数和返回值是double型,a,n,j是int型(有些算法竞赛中可能会CE)scanf两个%d之间加空格是没有问题的 scanf ("%d %d", &n,&j);空格可以过滤空白字符不加空格也可以,会自动根据输入的空格区分是两个数而不是一个数