有N个个位正整数存放在int整型数组A中,N定义为已经定义的常亮N<=9,数组长度为N,另给一个int型变量i,要求只用上述变量,写一个算法,找出N个整数中的最小者,并且要求不能破坏数组数据。
思路:i作为变量,这个变量的百位用于储存最小值地址,十位用来储存最小值,个位用于当前指向的地址。
#define length 9
void findMin(int data[])
{
int min = data[0] * 10;//这个变量的百位用于储存最小值地址,十位用来储存最小值,个位用于当前指向的地址
while (min % 10 < length)//个位数,指向当前扫描地址
{
if (data[min % 10] < min % 100 / 10)//与十位数(最小值)做比较,如果data比较小
{
min = (min % 10) * 100 + data[min % 10] * 10 + min % 10;
}
min++;//当前位置前进一格
}
cout << "最小值数组下标为:" << min/100 << endl;
cout << "最小值为:" << min % 100 / 10 << endl;
}