1. 程式人生 > >【資料結構】天勤線性表思考題2.1

【資料結構】天勤線性表思考題2.1

有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;
}