一个函数(function)是一个可以从程序其它地方调用执行的语句块。以下是函数定义格式:
创新互联2013年至今,公司以成都网站设计、成都做网站、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户上1000家,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。
type name ( argument1, argument2, ...) statement
说明:
type 是函数返回的数据的类型
name 是函数被调用时使用的名
argument 是函数调用需要传入的参量(可以声明任意多个参量)。每个参量(argument)由一个数据类型后面跟一个标识名称组成,就像变量声明中一样(例如,int x)。参量仅在函数范围内有效,可以和函数中的其它变量一样使用, 它们使得函数在被调用时可以传入参数,不同的参数用逗号(comma)隔开.
statement 是函数的内容。它可以是一句指令,也可以是一组指令组成的语句块。如果是一组指令,则语句块必须用花括号{}括起来,这也是我们最常见到情况。其实为了使程序的格式更加统一清晰,建议在仅有一条指令的时候也使用花括号,这是一个良好的编程习惯。
示例:每一个C语言程序有且只有一个main函数,本身main就是一个函数。结合上面的格式,自己理解一下。
int main()
{
return 0;
}
1-/*6、输入学生8门考试成绩保存在数组里,
输出这个学生的总分和平均分,以及最高分和最低分;*/
#include stdio.h
void main()
{
int a[8];//定义长度为八的一维数组存学生的八门考试成绩
int sum=0,avg=0;//sum为成绩之和,avg为平均分
int max=0,min=101;//max为最高分,min为最低分(假设最高分为100分)
int i;
printf("请输入该学生的八门考试成绩:\n");
for(i=0;i8;i++)
{
scanf("%d",a[i]);//输入八门成绩
sum=sum+a[i];//求成绩总分
if(maxa[i])
{
max=a[i];//求最高分
}
if(mina[i])
{
min=a[i];//求最低分
}
}
avg=sum/8;//求平均分
printf("总分为%d\n平均分为%d\n最高分为%d\n最低分为%d\n",sum,avg,max,min);
}
2-/*定义一个包含有10个变量的整型数组,利用循环输入
10个数字.然后将这个数组的元素按下标的首尾交换.
例如: 下标为0的和下标为9的交换,依次类推*/
#include stdio.h
void main()
{
int a[10];//定义长度为十的整形数组
int i,t;//i为循环变量。t为中间变量
printf("请输入十个数组元素:\n");
for(i=0;i10;i++)
{
scanf("%d",a[i]);//输入每个元素
}
printf("十个组元素为:\n");
for(i=0;i10;i++)
{
printf("%d\n",a[i]);//输出每个元素
}
for(i=0;i5;i++)//下标交换,0与9换,依此类推
{
t=a[i];
a[i]=a[9-i];
a[9-i]=t;
}
for(i=0;i10;i++)
{
printf("%d\n",a[i]);//输出下表交换完成的各元素
}
}
MATLAB提供了计算贝塞尔函数的函数,具体包括:
besselj - 第一类贝塞尔函数,或简称贝塞尔函数;
bessely - 第二类贝塞尔函数,又称诺伊曼函数(Neumann function);
besseli - 第一类修正贝塞尔函数;
besselk - 第二类修正贝塞尔函数;
besselh - 第三类贝塞尔函数,又称汉克尔函数(Hankel function).
这几个函数的调用语法基本相同,例如
J = besselj(nu,Z)
J = besselj(nu,Z,1)
[J,ierr] = besselj(nu,Z)
其中,nu为贝塞尔函数的阶数,Z为函数自变量.阶数必须为实数,但Z可以是复数.
值得一提的是,上述函数是MATLAB基本模块(也就是说不需要任何附加的工具箱)提供的特殊函数,采用数值方法计算;而符号数学工具箱则提供了第一和第二类的4个贝塞尔函数,名称和调用方式都与MATLAB基本系统的4个函数完全一致,但支持微分、积分等符号运算.
在C语言中,一个标准的函数定义语句块必须包含函数返回值的类型标识符、函数名、形参类型及数量、函数体、返回值表达式。如果函数返回值类型为 void (即无返回值),则在两个大括号之间不能写带有返回值表达式的 return 语句,否则编译器就会报错。你写的 test 函数返回值类型为 void,而你在函数定义语句块内写下了 return 语句,编译器自然会报错了。
你可以将这个函数修改为以下形式:
int test(int n)
{
int m = n / 2;
return m;
}