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

C语言中如何直接将函数返回值作为另一函数参数?代码问题求助

问题分析与解决

问题根源

你的dobrar和triplica函数虽然声明了参数p1、p2,但函数内部完全没有使用这些参数,反而直接引用全局变量n1。当调用triplica(dobrar(n1))时,dobrar返回的2并没有被triplica接收使用,triplica依然用原来的全局变量n1=1计算,最终得到3而非预期的6。

修正后的代码

#include<stdio.h>

// 移除不必要的全局变量,改用参数传递数据
int dobrar(int num){
    return 2 * num;
}
int triplica(int num){
    return 3 * num;
} 

int main(){
    int n1;
    printf("digite um numero \n");
    scanf("%i", &n1);
    printf("o n1 dobrado %i \n ", dobrar(n1));
    // 此时triplica接收dobrar返回的2,计算3*2=6
    printf("o numero triplicado %i", triplica(dobrar(n1)));

    return 0;
}

补充说明

全局变量容易引发这类逻辑错误,它的值可能在程序运行中被意外修改,且依赖全局变量的函数复用性差。尽量通过参数传递数据,让函数逻辑更清晰、独立。

内容的提问来源于stack exchange,提问作者Amner Brel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 07:48:44