编写一个函数int average(int x1,int x2,int x3),计算三

编写一个函数int average(int x1,int x2,int x3),计算三编写一个函数int average(int x1,int x2,int x3),计算三个数的平均值,最后将计算结果返回。在主函数中完成从键盘输入三个整数,调用该函数,并输出结果。

int average(int x1,int x2,int x3) {
return (x1+x2+x3)/3; /*average返回值,及x1,x2,x3均为int型,因此该函数求得之平均值会“打断小数部分”*/
}

int main (void) {
int x1,x2,x3;
printf("请输入x1,x2,x3,以空格间隔:");
scanf ("%d %d %d",&x1,&x2,&x3); 

printf ("x1,x2,x3的平均值为%d\n",average (x1,x2,x3));

return 0;

}

运行结果

追问

想请问您一下 有的时候分不清到底什么该定义,这个怎么区分呢?

为什么a,b,c不用先定义呢

不是

为什么a,b,c不先声明一下呢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-27

如果用int作为返回值,得到的平均值会是近似值,不准确。 正常都是用float做平均值的。 

按照int返回,写法如下:

#include <stdio.h>

int average(int x1, int x2, int x3)
{
    return (x1+x2+x3)/3;
}

int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("average = %d\n", average(a,b,c));
    return 0;
}

追问

想请问您一下 有的时候分不清到底什么该定义,这个怎么区分呢?

为什么a,b,c不用先定义呢

追答

C语言中,只要使用就要先定义,没有不需要定义的情况
这里main的第一行就是abc的定义
你说的如果是初始化
那么只有需要初始值的时候就需要初始化

追问

是 为什么a,b,c不先声明一下呢

追答

局部变量,只有定义,没有声明

追问

所以 只有全局变量可以声明 局部变量不可以声明是吗

追答

是的

追问

全局变量必须先声明对吗

追答

全局变量有定义和声明两种说法,本文件定义就好
其它文件引用需要先声明

本回答被网友采纳
相似回答