变量覆盖和数组换位
变量覆盖:使用变量来覆盖存储最值
数组换位(冒泡的一部分):交换数据在数组中的位置,以保持指向的下标位置始终为最值
变量换位
使用max和min存储最值
在判断之前将Array[0]的赋值给max及min以初始化
使用max<Array[1]成立则max=Array[1] 及 min>Array[1]成立则min=Array[1]
#include <stdio.h>
main()
{
int Array[10],max,min;
for(int i=0;i<10;i++)
scanf("%d",&Array[i]);
max=Array[0]; //max初始化.
for(int i=1;i<10;i++)
if(max<Array[i]) //max<Array[i]成立则表示Array[i]为目前最大值以将max的值覆盖掉.
max=Array[i];
min= Array[0]; //min初始化.
for(int i=1;i<10;i++)
if(min>Array[i]) //min>Array[i]成立则表示Array[i]为目前最小值以将min的值覆盖掉.
min=Array[i];
printf("max=%d min=%d",max,min);
}
数组换位
使用Array[0]>Array[0+1]成立则换位的方式使最大值在最后一个元素,也就是下标9
使用Array[8-1]>Array[8]成立则Array[8-1]=Array[8]的方式使最小值在第一个元素,也就是下标0
#include <stdio.h>
main()
{
int Array[10],up,i;
for(int i=0;i<10;i++) //在输入循环中使用for里面局部变量i
scanf("%d",&Array[i]);
for(i=0;i<9;i++)
if(Array[i]>Array[i+1]) //Array[i]>Array[i+1]成立则表示Array[i]为目前最大值换位后下标自增继续拿目前最大值判断.
{
up=Array[i];
Array[i]=Array[i+1];
Array[i+1]=up;
}
while(i>0)
{
if(Array[i-1]>Array[i]) //Array[i-1]>Array[i]成立则表示Array[i]为目前最小值,
Array[i-1]=Array[i]; //最后一次使用这个数组,后面的内容不会再用到所以直接覆盖
i--;
}
printf("max=%d min=%d",Array[9],Array[0]);
}