两次调用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
相关产品推荐
相关产品推荐

