对数组int arr[]={12,32,45,56,2,45,23,67,43,7} 实现简单选择排序。
#include <stdio.h>
int main(int argc, const char *argv[])
{
int arr[10]={12,32,45,56,2,45,23,67,43,7};
int i,j,t,min;
for(i=0;i<9;i++)
{
min=i;
for(j=i+1;j<10;j++)
{
if(arr[min]>arr[j])
{
min=j;
}
}
if(min!=i)
{
t=arr[min];arr[min]=arr[i];arr[i]=t;
}
}
for(i=0;i<10;i++)
{
printf("%d\t",arr[i]);
}
return 0;
}
运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/3cda0a6c44bcb97073116e1acad4b80b.png)
实现一维数组中最大值和最小值的交换。
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a[10],i,j,m,n,t;
int maxi,mini;
printf("请输入10个数字:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
if(i==0)
{
m=a[i];mini=i;n=a[i];mini=a[i];
}
else
if(a[i]>m)
{
m=a[i];
mini=i;
}
if(a[i]>n)
{
n=a[i];
mini=i;
}
}
t=a[0];a[0]=a[mini];a[mini]=t;
t=a[9];a[9]=a[mini];a[mini]=t;
printf("排序后: \n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
对数组int arr[]={12,32,45,56,2}中的偶数,实现冒泡排序。
#include<stdio.h>
linux@linux:~/day$ vi 3.c
linux@linux:~/day$ cat 3.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int arr[5]={12,32,45,56,2};
int i,j,t;
if(arr[i]%2==0)
printf("%d\t",arr[5]);
scanf("%d",&arr[5]);
for(i=1;i<5;i++)
{
for(j=0;j<5-i;j++)
{
if(arr[j]<arr[j+1])
{
t=arr[j];arr[j]=arr[j+1];arr[j+1]=t;
}
}
}
for(i=0;i<5;i++)
printf("%d\t",arr[i]);
return 0;
}
计算二维数组的最大值,最大值行列下标,最小值,最小值行列下标。
include <stdio.h>
main()
{int i,j,a=0,b=0,max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,5,2}};
max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{
max=a[i][j];
a=i;
b=j;
}
printf("%d,%d,%d\n",max,a,b);
}