在线编译器 C

#include<stdio.h> int main(){ int n,m,temp=1; scanf("%d %d",&n,&m); for(int i=0;i<m;i++){ n=temp*n; } printf("%d",n); return 0; }
1) 这段代码试图计算 n 的 m 次方,但存在逻辑错误:它错误地使用了 `temp` 变量(初始化为1)并在循环中不断乘以 `n`,导致结果不正确。

2) 提示:考虑幂运算中基数应保持不变,每次应乘以原来的基数,而不是变化的值。另外,检查 `temp` 的初始值和更新方式是否正确。