您的当前位置:首页正文

C语言函数

2021-09-20 来源:榕意旅游网
实验六 函数

一、实验目的

一、实验目的

1.掌握函数定义的方法。

2.掌握函数实参及形参的对应关系以及“值传递”方式。 3.熟悉函数的嵌套调用和递归调用的方法。

4.熟悉全局变量和局部变量,动态变量、静态变量的概念和使用方法。

二、实验内容

1.编写函数。通过海伦公式p=(a+b+c)/2),计算三角形面积。

【解题思路】根据海伦公式可以看出,需要提供三角形三条边作为已知数据参与计算,计算结果为三角形面积。自定义函数float area(float a, float b, float c),其中形参a、b、c分别对应三角形的三条边,函数返回值为三角形面积,所以函数类型定义为float类型。注意:在main函数中需要先对自定义函数进行声明才能够调用。 #include #include void main() {

float a,b,c,s;

float area(float a,float b,float c);

//函数声明

p(pa)(pb)(pc)(其中

}

printf(\"从键盘输入三角形的三条边长:\"); scanf(\"%f,%f,%f\s=area(a,b,c);

//调用函数

printf(\"三角形面积为%.2f\\n\

float area(float a,float b,float c) //自定义函数 { }

2.写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。

【解题思路】程序的核心任务由自定义函数int prime(int n)来实现,其中形参n即为需要判定的数。自定义函数中初始设置标记变量flag初值为1(首先假设n是素数),然后在[2,sqrt(n)]这个范围内寻找是否有其他可以整除n的数,如果找到,则将flag赋值为0,循环结束。通过函数的返回值flag来标记变量n是否是素数。 #include #include void main() float p,s; p=(a+b+c)/2;

//计算p的值

//根据海伦公式计算三角形面积

s=sqrt(p*(p-a)*(p-b)*(p-c)); return s;

//返回计算得到的三角形面积

{ int n,flag; int prime(int n);

//函数声明

printf(\"从键盘输入一个整数:\"); scanf(\"%d\ flag=prime(n); //函数调用

if(flag==1) printf(\"%d是素数\\n\ else

printf(\"%d不是素数\\n\

}

int prime(int n) //自定义函数 { int i,flag=1;

for(i=2;i<=sqrt(n);i++) {

//如果在[2,sqrt(n)]这个范围内找到了能够整除n的数,将赋值为0,循环结束 if(n%i==0)

{

flag=0;

break;

}

}

return flag; //通过flag的值判定n是否是素数 } flag3.工厂给工人发工资,当确定实发工资数额后,自动确定发多少张100元、50元、10元、5元、1元的钞票。编写函数输出实发工资总额和所需各种钞票的总数目(要求发的总张数最少)。

【解题思路】在主函数中输入实发工资,自定义函数int sum_total(int a),其中形参a即为实发工资。在自定义函数中定义变量c,i,j,k,l,m(其中c为各面额钞票数量之和,i,j,k,l,m分别代表各面额张数),定义变量b为每次求余后的数,先计算100元面额的数量,再以此类推分别计算其他面额的钞票数,最后将所有数量求和并返回给主函数。 #include void main() {

int a; //定义a为实际工资 int c; //定义c为各面额钞票数

量之和 }

int sum_total(int a);

printf(\"输入实发工资数额:\"); scanf(\"%d\

c=sum_total(a); //各种面额钞票数量总和 printf(\"实发工资数额%d\\n钞票总数目%d\\n\

int sum_total(int a) { int b;

//定义b为每次求余后的数

int c,i,j,k,l,m; 表各面额张数 i=a/100; b=a%100; j=b/50; 量 b=b%50; k=b/10; b=b%10; l=b/5; b=b%5; m=b;

c=i+j+k+l+m; return c;

}

//定义c为各面额钞票数量之和,i,j,k,l,m分别代

//求100面额钞票数量 //工资除去100面额以后的工资

//除去100面额钞票后工资求50面额的钞票数

//各种面额钞票数量总和

因篇幅问题不能全部显示,请点此查看更多更全内容