\我已经为我的测试创建了一个练习项目,但我似乎无法解决这个问题。我需要一个函数来获取输入,当在另一个函数中调用时,输入将用于解决问题。\以下是我的代码
#include <stdio.h>
int get()
{
int one,two,three,four;
scanf("%d %d %d %d", &one, &two, &three, &four);
return one,two,three,four;
}
int add()
{
int one,two,three,four;
int result1, result2, result3;
get();
result1 = one + two;
if (result1 == three)
{
result2 = four - three;
result3 = result2 + four;
printf("Added %d, 5th number is %d", result2, result3);
}
else
{
printf("error, %d %d %d %d", one, two, three, four);
}
}
int main()
{
add();
return 0;
}
当我把scanf语句放在函数中时,它可以工作,但是当我使用函数获取输入时,我得到的是不同的数字
2条答案
按热度按时间xxb16uws1#
在函数
get
的返回语句中这里有一个带逗号的表达式,它的值是最后一个操作数的值,也就是说函数返回变量
four
的值。而且返回的值不会在调用者中使用,所以你在处理函数
add
中的未初始化变量。如果需要返回四个值,则通过引用参数返回它们。
并调用如下函数
或者,该函数可以返回一个整数,表示输入是否成功,例如
您可以在执行计算之前检查函数
add
中的返回值。注意,函数
add
什么也不返回,因此声明其返回类型为void
。j2datikz2#
1.在函数get()中,变量1、2、3、4存储在堆栈中,在该函数之外不可用。
1.使用get()只能返回一个值
1.必须将返回值存储到特定变量result1= get()
1.如果您希望一次返回更多信息,则应使用struct