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