【C语言】函数

阐述:

函数就是功能。每一个函数用来实现一个功能。函数名字要反映其代表的功能。

简单运用:

输出一行*,一行文字,再一行*。

cpp 复制代码
#include<stdio.h>
int main(){
	void print_star();
	void print_message();
	print_star();
	print_message();
	print_star();
	return 0;
}

void print_star(){
	printf("***************\n");
}

void print_message(){
	printf("Hello world!\n");
}

函数的实参与形参的传递

比较大小。

cpp 复制代码
#include<stdio.h>
int main(){
	int max(int x,int y);
	int a,b,c;
	printf("Enter two numbers :\n");
	scanf("%d %d",&a,&b);
	c = max(a,b);
	printf("%d is max\n",c);
	return 0;
}

int max(int x,int y){
	int z;
	z = x > y ? x : y;
	return(z);
}

函数的嵌套使用

比较4个数的大小。

cpp 复制代码
#include<stdio.h>
int main(){
	int max4(int a,int b,int c,int d);     // 对 max4 函数的声明
	int a,b,c,d,max;
	printf("Enter 4 numbers :\n");
	scanf("%d %d %d %d",&a,&b,&c,&d);
	max = max4(a,b,c,d);
	printf("max = %d\n",max);
	return 0;
}

int max4(int a,int b,int c,int d){      // 定义 max4 函数
	int max2(int a,int b);
	int m;
	m = max2(a,b);
	m = max2(m,c);
	m = max2(m,d);
	return(m);
}

int max2(int a,int b){        // 定义 max2 函数
	if(a > b){
		return a;         // 若 a 大,则将 a 作为返回值
	}
	else{
		return b;
	}
}

函数的递归调用

求n!

cpp 复制代码
#include<stdio.h>
int main(){
	int fac(int n);
	int n;
	int y;
	printf("Enter a number :");
	scanf("%d",&n);
	y = fac(n);
	printf("%d! = %d",n,y);
	return 0;
}

int fac(int n){      
	int f;
	if(n < 0){
		printf("n < 0,data error!");
	}
	else if(n == 0 || n == 1){
		f = 1;
	}
	else{
		f = fac(n - 1)*n;
	}
	return (f);
}

数组作为函数参数

在一个一维数组score内,放5个学生的成绩,求平均成绩。

cpp 复制代码
#include<stdio.h>
int main(){
	float average(float array[5]);
	float score[5],aver;
	int i;
	printf("Enter 5 scores :\n");
	for(i = 0;i < 5;i++){
		scanf("%f",&score[i]);
	}
	printf("\n");
	aver = average(score);
	printf("average score is %5.2f\n",aver);
	return 0;
}

float average(float array[5]){
	int i;
	float aver,sum = array[0];
	for(i = 1;i < 10;i++){
		sum = sum + array[i];
	}
	aver = sum/5;
	return(aver);
}

用选择法对数组中10个整数按由小到大排序。

cpp 复制代码
#include<stdio.h>
int main(){
	void sort(int array[],int n);
	int a[10],i;
	printf("Enter array :\n");
	for(i = 0;i < 10;i++){
		scanf("%d",&a[i]);
	}
	sort(a,10);
	printf("The sorted array :\n");
	for(i = 0;i < 10;i++){
		printf("%d ",a[i]);
	}
	printf("\n");
	return 0;
}

void sort(int array[],int n){
	int i,j,k,t;
	for(i = 0;i < n-1;i++){
		k = i;
		for(j = i+1;j < n;j++){
			if(array[j] < array[k]){
				k = j;
			}
		}
		t = array[k];
		array[k] = array[i];
		array[i] = t;
	}
}

多维数组作函数参数

有一个3×4矩阵,求所有元素中的最大值。

cpp 复制代码
#include<stdio.h>
int main(){
	int max_value(int array[][4]);
	int a[3][4] = {{1,3,5,7},{2,4,6,8},{13,16,15,18}};
	printf("Max value is %d\n",max_value(a));
	return 0;
}

int max_value(int array[][4]){
	int i,j,max;
	max = array[0][0];
	for(i = 0;i < 3;i++){
		for(j = 0;j < 4;j++){
			if(array[i][j] > max){
				max = array[i][j];
			}
		}
	}
	return (max);
}

局部变量和全局变量

有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后,能求出平均分、最高分和最低分。

cpp 复制代码
#include<stdio.h>
float Max = 0,Min = 0;      // 定义全局变量 Max 和 Min
int main(){
	float average(float array[],int n);
	float ave,score[10];
	int i;
	printf("Enter 10 scores :\n");
	for(i = 0;i < 10;i++){
		scanf("%f",&score[i]);
	}
	ave = average(score,10);
	printf("max = %5.2f\nmin = %5.2f\naverage = %5.2f\n",Max,Min,ave);
	return 0;
}

float average(float array[],int n){
	int i;
	float aver,sum = array[0];
	Max = Min = array[0];
	for(i = 1;i < n;i++){
		if(array[i] > Max){
			Max = array[i];
		}
		else if(array[i] < Min){
			Min = array[i];
		}
		sum = sum + array[i];
	}
	aver = sum / n;
	return(aver);
}
相关推荐
大阳123几秒前
51单片机4(温度传感器DS18B20)
开发语言·单片机·嵌入式硬件·算法·51单片机
iナナ3 分钟前
Java优选算法——二分查找
数据结构·算法·leetcode
l1t37 分钟前
利用美团龙猫添加xlsx的sheet.xml读取sharedStrings.xml中共享字符串输出到csv功能
xml·c语言·数据结构·人工智能·算法·解析器
宇钶宇夕1 小时前
西门子 S7-200 SMART PLC 编程:转换 / 定时器 / 计数器指令详解 + 实战案例(指令讲解篇)
运维·算法·自动化
我叫汪枫1 小时前
Spring Boot图片验证码功能实现详解 - 从零开始到完美运行
java·前端·javascript·css·算法·html
l1t2 小时前
how to build tbox xml into the demo
xml·linux·c语言·parser·tbox
lifallen2 小时前
揭秘KafkaStreams 线程缓存:NamedCache深度解析
数据结构·算法·缓存·kafka·apache
我的知识太少了2 小时前
P1122 最大子树和
算法
郝学胜-神的一滴2 小时前
深入浅出 C++20:新特性与实践
开发语言·c++·程序人生·算法·c++20
Jelena技术达人2 小时前
淘宝/天猫按图搜索(拍立淘)item_search_img API接口实战指南
算法·图搜索算法