交换算法(将最小值换到第一位,最大值换到最后一位)
#include<stdio.h>
void main()
{ int o=0;
int buf[10];
接收用户输入的数组
for(;o<10;o++)
{
scanf("%d",&buf[o]);
}
int i=0,j=0,k=0,a=0,b=0;
for(;i<10;i++)
{
if(j<buf[i])
{
j=buf[i];
得到最大值
}
if(k>buf[i])
{
k=buf[i];
得到最小值
}
}
printf("%d %d\n",j,k);
for(i=0;i<10;i++)
{
if(j==buf[i])
{
a=i;
得到最大值的位置
printf("%d\n",a);
}
if(k==buf[i])
{
b=i;
得到最小值的位置
printf("%d\n",b);
}
} }
buf[0]=buf[0]+buf[b];
buf[b]=buf[0]-buf[b];
buf[0]=buf[0]-buf[b];
将最小值换到第一位
buf[9]=buf[9]+buf[a];
buf[a]=buf[9]-buf[a];
buf[9]=buf[9]-buf[a];
将最小值换到最后位
for(i=0;i<10;i++)
{
printf("%d ",buf[i]);
}
}
对调算法(将数组元素对调)
#include<stdio.h>
void main()
{
int buf[10]={1,2,3,4,5,6,7,8,9};
int i=0;
for(;i<5;i++)
{
buf[10]=buf[8-i]; 将数组元素按最中间的元素对调
buf[8-i]=buf[i];
buf[i]=buf[10];
}
buf[10]=0;
int j=0;
for(;j<9;j++)
{
printf("%d ",buf[j]);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)