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

#include <stdio.h> int main() { int a, b, i, t; scanf("%d %d", &a, &b); for(i=1;i<=b;i++) { t=a; t=t*a; } printf("%d", a); return 0; }
1) 这段代码试图计算 a 的 b 次方,但存在逻辑错误:循环中每次都将 t 重新赋值为 a,然后计算 t = t * a,但最终输出的却是原始的 a 值,导致结果错误。

2) 提示1:思考一下,计算幂次时,应该用一个变量持续累积乘法的结果,而不是每次重新赋值。
   提示2:注意最终输出的是哪个变量,它是否在循环中被正确更新了?