我一直在努力做一个总结两个数字的程序;我想用一个函数来做到这一点。该函数称为“sum”。使用下面显示的代码,我得到“总和为0”。我做错了什么?
#include <stdio.h>
int sum()
{
int a, b;
int answer;
answer = a+b;
return 0;
}
int main()
{
int var_a, var_b;
int result;
printf (" first number \n");
scanf ("%i",&var_a);
printf ("second number \n");
scanf ("%i",&var_b);
result = sum(var_a,var_b);
printf(" The sum is %i", result);
return 0;
}
答案 0 :(得分:4)
您的功能sum
首先,返回值应为answer
,而不是0
,否则无论您如何调用此函数,它总是会给您0.所以将return 0;
更改为{{1} }。
其次,当您执行return answer;
sum
时,您清楚地意识到函数result = sum(var_a,var_b);
会从外部获取参数。因此,您应该相应地定义函数main
,如:
sum
答案 1 :(得分:2)
int sum()
{
int a, b;
int answer;
answer = a+b;
return 0;
}
这个功能有什么作用?我们来看看:
a
,b
和answer
并且不为它们指定值(因此它们可以有任何值,可能是0,可能是635621112)。answer
设置为a+b
- 两个垃圾值的总和仍然是垃圾值。0
。所以基本上,它会添加两个未知值,然后忽略它的结果并返回0.当你写return 0;
如果你想让a
和b
成为函数的参数,那么函数应该像这样开始:
int sum(int a, int b)
{
int answer;
如果您想返回answer
的值,请将return 0;
更改为return answer;
答案 2 :(得分:-1)
您可以使用用户定义的函数,确保您用于变量的数据类型 这是一个简单的例子
int AddTwoNumbers(int a, int b)
{
int result;
result=a+b;
return result;
}
现在您可以在主函数
中调用该函数int main(){
int a=10,b=20;
printf("The sum is:%d", AddTwoNumbers(a,b));
return 0;
}