小时候,函数是数学的大招,我在这头,不停抠脚。
长大后,函数是IT的路标,我还在这头,能不能不逗?
哥要把它迈过去。
--------------------------------------------------------------这是一根简单的小情割-----------------------------------------------------------
总结:
1.函数包含3个步骤,分别是函数的声明和实现,以及调用。
2.函数的声明和实现在一个地方完成,我们统称为函数的定义。
3.函数的声明包括函数名称,参数列表,以及返回类型。
4.参数列表中有形参的类型,顺序,以及个数。中间以逗号分隔。
5.函数与函数间是平行关系,不可以嵌套或在函数中定义新函数。
6.函数的定义应在主函数调用子函数之前。
7.参数的数据传递形式分为值传递和地址传递。
例题:
/*
5、输入6个人的成绩放入到一个一维数组中,然后打印出平均分,最后按成绩
从大到小打印。三个功能(输入是一个函数,求平均分是一个函数,排序是一个
函数)都用函数实现,最后在main方法中调用。
*/
#include<stdio.h>
void enter() /*将6个人成绩录入的函数*/
{
int i;
double score[100]; /*因为有6个人而且成绩可以是小数,因此使用双精度数组*/
for(i=0;i<6;i++)
{
printf("请输入第%d个学生的成绩:",i+1);
scanf("%lf",&score[i]);
}
}
double average() /*求平均分函数*/
{
int i;
double score[100];
double sum=0;
for(i=0;i<6;i++)
{
sum+=score[i];
}
return sum/6; /*循环求和后,将和除6以后的值返还给average()*/
}
void rank() /*排序函数*/
{
int i,j;
double score[100];
double tmp;
for(i=0;i<6;i++) /*冒泡法从大到小排序*/
{
for(j=0;j<5-i;j++)
{
if(score[j]<score[j+1])
{
tmp = score[j];
score[j] = score [j+1];
score[j+1] = tmp;
}
}
}
for(i=0;i<6;i++) /*分6次输出重新排列后的数组中的每一个数字*/
{
printf("%.2lf\n",score[i]);
}
}
void main() /*主函数中调用*/
{
enter();
printf("\n这6个人的成绩按照从大到小的排序是:\n");
rank();
printf("\n他们的平均分是:%.2lf\n",average()); /*打印取值为average函数的返还值*/
}