十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1:子函数中sum没有初值,应该为
站在用户的角度思考问题,与客户深入沟通,找到古城网站设计与古城网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站制作、企业官网、英文网站、手机端网站、网站推广、主机域名、虚拟主机、企业邮箱。业务覆盖古城地区。
float
sum=0;
2:sum/10的结果为浮点型,你定义一个整型的avg1接收会产生错误,应该定义一个浮点型变量接收值
3:你这里是三个学生,你在函数中不应该除以10,另外函数中的循环取得的sum值是一个学生五门功课的成绩总和,如果要求每一门功课的
平均成绩,你的循环需要修改
4:函数的调用是压栈的过程,你的函数没有返回值所以不可以return
b[5],如果想要返回一个数组你应该在主函数中先定义然后向自定义函数中传入子函数地址,这样就可以保存每门功课的成绩了
希望可以帮到你
来传送子函数中的数组有多种方法——可以通过函数返回值返回地址传递数组;也可以通过函数输入参数来传递数组;还可以通过全局变量来传递数组。
子函数本身可以直接在作用域中进行调用。
1、通过函数返回值返回地址传递数组。
声明函数时需要声明函数返回值类型为对应数组的地址,此时可以返回数组的地址,结合数组元素的地址关系可以传递整个数组,同时可以根据数组的特性传递多个参数。
2、通过输入参数传递数组。
声明函数时提供空输入参数,调用函数时提供目标数组,即可以通过该数组调用子函数中的数组,该方法也可以用于传递多个参数。
3、通过全局变量来传递数组。
声明全局变量用于存储子函数中的数组,此时可以在全局变量作用域中读取调用子函数的数组。
注意:子函数是C语言模块化编程思想的核心,其方法是通过输入接口和输出接口实现对黑盒的调用,故对其内部数据的输入和调用也需要通过输入接口、输出接口和程序的公共区域实现。
数组作为子函数形参的时候,是被当做指针处理的,也就是说
你这样写一个子函数
int a(int a[]) ;
等价于
int a(int *a) (其实编译器是这么处理的)你可以看汇编代码!
把数组名作为实参,传递给子函数即可,这是地址传递,子函数中处理的结果将影响到主函数数组的元素值。课本上“数组做函数参数”部分应该有例子可以参考。
int data[8] = {0, 0, 0, 0, 0, 0, 0, 0};
void dealdata(int* data, int length){
for (int i = 0; i length; i++) {
printf("%d\n", data[i]);
}
}
dealdata(data, 8);
1、新建一个数组作为参数项目,如图所示:
2、添加一个array.c文件,如图所示:
3、包含stdio.h和stdlib.h头文件,如图所示:
4、输入main函数主体及返回值,如图所示:
5、定义一个数组arr,如图所示:
6、定义一个function函数,如图所示:
7、将数组作为参数传递给function函数,如图所示:
8、运行程序,输出结果,如图所示: