嵌入式day9

文章展示了如何在C语言中使用冒泡排序对一维数组进行排序,以及如何定义和操作二维数组来找到其最大值、最小值和第二大值。通过定义有参无返和有参有返函数实现了这些功能。

1.在主函数定义一维数组并赋值

要求:

1,定义函数实现冒泡排序 [有参无返函数]

#include <stdio.h>
void Maopao(int arr[],int len){
	for(int i=1;i<len;i++){
		int count=0;
		for(int j=0;j<len-i;j++){
			if(arr[j]>arr[j+1]){
				int t=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=t;
				count++;
			}
		}
		if(count==0)break;
	}
	for(int i=0;i<len;i++){
		printf("%d ",arr[i]);
	}
	printf("\n");
}
int main(int argc, const char *argv[])
{
	//主函数定义一维数组并赋值
	//要求:
	//1.定义函数实现冒泡排序
	//定义函数实现输出
	int a[]={56,34,20,67,82,14,91,73,15};
	int len=sizeof(a)/sizeof(a[0]);
	Maopao(a,len);
	return 0;
}

2.在主函数定义二维数组

要求:

1,定义函数,计算二维数组最大值[有参有返函数,返回最大值]

2,定义函数,计算二维数组第二值[有参有返函数,返回第二大值]

3,定义函数,计算二维数组最小值[有参有返函数,返回最小值]

#include <stdio.h>
int Max(int a[][3],int line,int row){
	int max=a[0][0];
	for(int i=0;i<line;i++){
		for(int j=0;j<row;j++){
			if(max<a[i][j]){
				max=a[i][j];
			}
		}
	}
	return max;
}
int Min(int a[][3],int line,int row){
	int min=a[0][0];
	for(int i=0;i<line;i++){
		for(int j=0;j<row;j++){
			if(min>a[i][j]){
				min=a[i][j];
			}
		}
	}
	return min;
}
int Max2(int a[][3],int line,int row){
	int max2=a[0][0];
	int max=Max(a,line,row);
	int count=0;
	for(int i=0;i<line;i++){
		for(int j=0;j<row;j++){
			if(max==a[i][j]){
				count++;
			}
		}
	}
	if(count >=2){
		return max;
	}else{
		for(int i=0;i<line;i++){
			for(int j=0;j<row;j++){
				if(max2<max-20&&max2<a[i][j]){
					max2=a[i][j];
					printf("max=%d,a=%d\n",max,a[i][j]);
				}
			}
		}
		return max2;
	}
}
int main(int argc, const char *argv[])
{
	//在主函数定义二维数组
	//1.计算最大值,第二大值和最小值;
	int arr[][3]={56,34,20,67,54,14,91,73,15};
	int line=sizeof(arr)/sizeof(arr[0]);
	int row=sizeof(arr[0])/sizeof(arr[0][0]);
	int max,min,max2;
	max=Max(arr,line,row);
	min=Min(arr,line,row);
	max2=Max2(arr,line,row);
	printf("max=%d,max2=%d,min=%d\n",max,max2,min);
	return 0;
}

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值