Онлайн компилятор C

#include <stdio.h> int main() { int a, b, i; long long t; scanf("%d %d", &a, &b); t=1; if(a>0 && b>=0) { if(b==0) { printf("1"); return 0; } if(b==1) { printf("%d", a); return 0; } if(b>1) { for(i=1;i<=b;i++) { t=t*a; } printf("%lld", t); } } return 0; }
1) 这段代码计算整数 a 的 b 次幂(a^b),其中 a 为正数,b 为非负整数。它处理了 b 为 0 或 1 的特殊情况,并使用循环进行幂运算。

2) 提示:当 a 为负数时,程序会直接结束而不输出结果,考虑如何修改条件以支持负底数。另外,注意当幂运算结果较大时,当前使用的 long long 类型可能仍会溢出,可以思考如何检测或防止溢出。