返回代码误解

-1 c

#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;
}
Run Code Online (Sandbox Code Playgroud)

当我提供输入时,-1 1 0我的输出应该是,1但它给出了0
原因?这是关于添加三个数字

Sto*_*ica 5

 int calsum (int x,int y,int z)
 {
   return ;
 }
Run Code Online (Sandbox Code Playgroud)

声明并定义了您的函数以返回一个int,但您的return语句是无表达式的.这是一种语言约束违规.

程序的行为未定义.在这种情况下,有趣的结果是可能的结果.