如何在C语言中自定义计算10的x次方的函数?代码错误排查
问题分析与修正
你的代码核心问题是在ten_to_the函数中错误覆盖了输入参数n,导致循环逻辑完全偏离预期:
- 函数一开始就把传入的指数参数
n赋值为1,直接丢失了原本的输入(比如你调用时传入的2)。 - 循环条件
i < n依赖的是被修改后的n值,循环次数完全错误。
修正后的代码
#include <cs50.h> #include <stdio.h> int ten_to_the(int n); int main(void) { int x = 50; x *= ten_to_the(2); printf("%i\n", x); } int ten_to_the(int n) { // 用单独变量存储结果,不修改输入参数 int result = 1; // 循环次数由输入的指数n决定 for (int i = 0; i < n; i++) { result *= 10; } return result; }
关键修改点
- 新增
result变量存储幂运算结果,避免覆盖输入参数n。 - 循环条件
i < n基于原始输入的指数,确保循环执行n次,每次将结果乘以10,最终得到10^n。
运行修正后的代码,输出会是预期的5000。
内容的提问来源于stack exchange,提问作者Sifnts
相关产品推荐
相关产品推荐

