目录
1、计算二维数组的最大值,最大值行列下标,最小值,最小值行列下标。
2、对数组 int arr[]={12,32,45,56,2}中的偶数,实现冒泡排序。
3、对数组 int arr[]={12,32,45,56,2,45,23,67,43,7} 实现简单选择排序。
一、思维导图
1、一维数组
2、二维数组
二、作业
1、计算二维数组的最大值,最大值行列下标,最小值,最小值行列下标。
#include <stdio.h>
int main(int argc, const char *argv[])
{
//1、计算二维数组的最大值,最大值行列下标,最小值,最小值行列下标。
int a[3][4];
int i,j,max,min,maxi,mini,max1=0,max2=0,min1=0,min2=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("请输入第%d行第%d列的数:",i,j);
scanf("%d",&a[i][j]);
if(a[i][j]>a[max1][max2])
{
max1=i;
max2=j;
}
if(a[i][j]<a[min1][min2])
{
min1=i;
min2=j;
}
}
}
printf("最大值为%d,最大值的下标为:[%d][%d]\n",a[max1][max2],max1,max2);
printf("最小值为%d,最小值的下标为:[%d][%d]\n",a[min1][min2],min1,min2);
return 0;
}
2、对数组 int arr[]={12,32,45,56,2}中的偶数,实现冒泡排序。
#include<stdio.h>
int main(int argc, const char *argv[])
{
//2.对数组 int arr[]={12,32,45,56,2}中的偶数,实现冒泡排序。
int arr[]={12,32,45,56,2};
int i,j,t,count=0;
int a[5];
for(i=0;i<5;i++)
{
if(arr[i]%2==0)
{
a[count]=arr[i];
count++;
}
}
for(i=1;i<count;i++)
{
for(j=0;j<count-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
for(i=0;i<count;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
3、对数组 int arr[]={12,32,45,56,2,45,23,67,43,7} 实现简单选择排序。
#include <stdio.h>
int main(int argc, const char *argv[])
{
//对数组 int arr[]={12,32,45,56,2,45,23,67,43,7} 实现简单选择排序。
int a[]={12,32,45,56,2,45,23,67,43,7};
int n=sizeof(a)/sizeof(a[0]);
int min,i,j,t;
for(i=0;i<n;i++)
{
min=i;
for(j=i;j<n;j++)
{
if(a[min]>a[j])
{
min=j;
}
}
if(min!=i)
{
t=a[min];a[min]=a[i];a[i]=t;
}
}
for(i=0;i<n-1;i++)
{
printf("%d\n",a[i]);
}
return 0;
}
4、实现一维数组中最大值和最小值的交换。
#include <stdio.h>
int main(int argc, const char *argv[])
{
//4.实现一维数组中最大值和最小值的交换。
int n,a[100],max,min,maxi,mini,t;
printf("请输入共有几个数:");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("请输入%d个元素:",i+1);
scanf("%d",&a[i]);
if(i==0) //把第一个数赋值给max和min
{
max=a[i];
min=a[i];
maxi=i;
mini=i;
}
//开始比较
if(max<a[i])
{
max=a[i]; //最大值
maxi=i;
}
if(min>a[i])
{
min=a[i];
mini=i;
}
}
printf("最大值为:%d,最小值为:%d\n",max,min);
for(int i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
t=a[maxi];a[maxi]=a[mini];a[mini]=t;
for(int i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
return 0;
}