Online Compiler C

#include <stdio.h> int main() { int a, b, i, t; scanf("%d %d", &a, &b); t=a; for(i=1;i<=b;i++) { t=t*a; } printf("%d", t); return 0; }
1) 这段代码试图计算 a 的 b 次方,但逻辑有误。它先让 t 等于 a,然后在循环中将 t 乘以 a 共 b 次,这实际上计算的是 a 的 (b+1) 次方。

2) 提示:仔细检查循环的初始值和循环次数。想一想,如果要计算 a 的 b 次方,t 的初始值应该设为多少?循环应该执行多少次?