咳,你这程序问题挺多的,首先:
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,我给整个删了反而显示没错了…我完了再好好看看你写的,再次感谢!
加油,大家都是这么过来的,写程序还是重在积累,代码量高了,慢慢就会有提升了