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





