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

如何复用同一函数完成两次不同的乘法计算?(附C语言代码问题)

解决你的两数相乘函数调用问题

嘿,刚接触编程踩点小坑太正常了,咱们一步步捋清楚问题出在哪,再给你改好代码!先看看你当前代码里的几个核心问题:

  • 你的multiply函数完全废掉了参数的作用:你在函数里直接把a和b硬编码成3和4,这就意味着不管你调用时传什么值,函数只会返回12,完全失去了“复用函数计算任意两数乘积”的意义。函数的核心就是接收外部传入的数据来计算,所以这两行硬编码必须删掉。
  • 调用函数的逻辑顺序错了:第一次调用multiply(three,four)时,three和four都没初始化,是随机值(虽然因为函数硬编码结果碰巧对了,但逻辑完全错误);第二次计算用户输入的数时,你先调用了函数再给变量赋值,这时候得到的还是旧结果,而且也没把用户输入的n1、n2传给函数。

修正后的完整代码

#include <stdio.h>
#include <stdlib.h> // 用到system函数需要包含这个头文件

// 正确的乘法函数:接收两个int参数,返回它们的乘积
int multiply(int a, int b) {
    // 直接使用传入的参数计算,不再硬编码
    return a * b;
}

int main(void) {
    // 第一次计算:直接传入3和4给multiply函数
    int result = multiply(3, 4);
    printf("3和4的乘积是:%d\n\n", result);

    // 接收用户输入的两个数
    int n1, n2;
    printf("请输入两个整数:\n");
    scanf("%d %d", &n1, &n2);

    // 第二次计算:把用户输入的n1和n2传给multiply函数
    int product = multiply(n1, n2); // 这里把sum改成product更贴合“乘积”的含义,可读性更高
    printf("你输入的两个数的乘积是:%d\n", product);

    system("pause>nul");
    return 0;
}

关键改进点说明

  • 函数真正实现了复用:现在multiply函数可以接收任意两个整数,返回它们的乘积——不管你传3和4,还是用户输入的数,甚至其他数值,都能正确计算。
  • 参数传递逻辑完全正确:第一次调用直接传字面量3和4,简单直接;第二次调用把用户输入的n1和n2作为参数传入,确保函数计算的是用户想要的数值。
  • 代码可读性提升:把原来的sum改成product(乘积),变量名更贴合实际含义,后期看代码也能一眼明白它的作用。

内容的提问来源于stack exchange,提问作者Hibino Hareluya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:41:10