这就是个很简单的程序,没有错误但运行出来数字不对。

刚学习c语言故意没用一个主函数直接算。... 刚学习c语言故意没用一个主函数直接算。 展开
 我来答
澈丶233
2019-10-14 · TA获得超过169个赞
知道小有建树答主
回答量:446
采纳率:94%
帮助的人:102万
展开全部

咳,你这程序问题挺多的,首先:

1、c中函数定义前要声明,在你的main函数前要先声明好你的函数。

2、所谓函数,在有一组输入时,应该有且仅有一组对应的输出。在以前学数学的时候,老师有没有说过函数y=f(x),当x为一个值时,可以唯一确定到一个y值(大概这个意思吧),比如正比例函数,二次函数,三角函数都是如此。因此,你的这个call函数要么只能返回一个和,要么只能返回一个平均数,不能两个都返回。我试了一下,你这样写先返回sum,再返回avg,实际返回的还是avg(C这个还行,要是java中直接就编译不过,这种写法已经违反了java的语法了)。

3、另外就是你根本没有在main里面调用你写的这个函数,函数定义在那里,却不使用,它好孤独。

4、函数定义里的这些int a,int b这些形参就是给你拿来赋值的,你直接在函数体里把a赋值成1,b赋值成2,那形参就失去了它们的意义了。


个人认为比较正确规范的写法应该是这样:

#include<stdio.h>

int callSum(int,int,int);

int callAvg(int,int,int,int);

int main(){

int a=1;

int b=2;

int c=3;

int d=3;

int sum=0;

int avg=0;

sum=callSum(a,b,c);

printf("和:%d\n",sum);

avg = callAvg(a,b,c,d);

printf("平均数:%d\n",avg);

return 0;

}


int callSum(int a,int b,int c){

    int sum = a +b +c;

    return sum;

}


int callAvg(int a,int b,int c,int d){

int avg =(a+b+c)/d;

return avg;

}

你可以试试,运行结果:

追问
非常感谢了,我一个人自学的c确实很吃力。还有我原来是写调用函数了但是显示有错,和你不一样的地方是写了int sum 没写=0,我给整个删了反而显示没错了…我完了再好好看看你写的,再次感谢!
追答
加油,大家都是这么过来的,写程序还是重在积累,代码量高了,慢慢就会有提升了
GTA小鸡
高粉答主

2019-10-14 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
你还是先把教材函数章节看完吧。你根本没有调用函数call。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式