You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:15:36