#include<stdio.h>
int calsum(int x,int y,int z);
int main()
{
while(1)
{
int a, b, c, sum;
printf("Enter any3 numbers");
scanf("%d%d%d", &a, &b, &c);
sum = calsum(a, b, c);
printf("sum=%d\n", sum);
}
}
int calsum (int x, int y, int z)
{
int d;
d = x + y + z;
if(d > 2)
return d;
else
d = 1;
return;
}
当我以-1 1 0
提供输入时,我的输出应为1
,但它正在提供0
为什么?
这是关于添加三个数字
答案 0 :(得分:5)
int calsum (int x,int y,int z)
{
return ;
}
声明并定义了您的函数以返回int
,但您的return语句是无表达式的。这是一种语言约束违规。
程序的行为未定义。在这种情况下,有趣的结果可能会产生结果。
答案 1 :(得分:0)
更新您的calsum功能,如下所示。你在其他部分分配d = 1但没有返回它。
int calsum (int x,int y,int z){
int d;
d=x+y+z;
if(d>2)
return d;
else
return 1;
}