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

两次调用int类型GetSize函数分别存储宽高返回值的实现问题

解决方法

你只需要在main函数中定义两个独立的int变量width和height,分别接收两次GetSize函数的返回值即可,无需使用传引用,完全符合题目要求函数返回int类型的规则。

现有代码的隐藏问题

  • GetSize函数中的局部变量range未初始化,第一次进入while判断时读取的是内存随机垃圾值,可能导致逻辑异常,需要给range赋一个不在有效范围内的初始值(比如0)。
  • main函数中第一次打印宽度的printf语句末尾漏写了右括号,会触发编译错误。
  • 你注释标注使用C语言,引入的<cstdio>是C++标准头文件,纯C环境下建议替换为<stdio.h>。

修正后完整代码

//LaxScorupi
//11/21/2021
// C

#include <stdio.h>

int GetSize(int min, int max)
{
    // 初始化range为无效值,保证首次必然进入输入逻辑
    int range = 0;
    while (range < min || range > max)
    {
        printf("请输入一个介于 %d 和 %d 之间的数值: ", min, max);
        scanf("%d", &range);
    }
    return range;
}

int main ()
{
    int width, height;
    // 分别用两个变量存储两次调用的返回值
    width = GetSize(2, 80);
    printf("你的宽度值为 %d\n", width);

    height = GetSize(2, 21);
    printf("你的高度值为 %d\n", height);

    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:06:04