int型数组长度小于9,存的数字也小于等于9,只能用另外一个变量i,求出顺序表中的最小值
TIPS:以前的做法是,i作为数组的循环变量扫一遍数组,再定义一个Min作为最小值变量存储。
Good idea:用i的个位存储min最小值,十位当做循环变量(此方法只适用于特定题型,因为数组长度和存储的数都是小于9的1位数长度)
#include<stdio.h>
#define maxsize 50
/*用i的个位存储最小值,i十位上的数当做循环变量找第N个数*/
void findmin(int L[],int &i)
{
i=L[i/10];
while(i/10<=9)
{
if(i%10>L[i/10])//更换个位
{
i=i-i%10;
i=i+L[i/10];
}
i=i+10;//十位增加1 循环变量+1
}
i=i%10;
}
int main (void)
{
int L[9]={4,2,3,1,5,6,7,8,9};
int i;
findmin(L,i);
printf("%d\n",i);
return 0;
}