標題:

徵求~~C語言高手~~

發問:

有501個數字~可是只要取401個~就是每五個數要刪一個 可是這五個數 不能刪到最高跟最底的數(全部的數字皆是隨機而且不能排列順序) 舉個例子~~ ex 1 : -70,-83,-63,-20,-35; -90,-30,-46,-36,-12; 假如這是兩組 五個數字一組 每組刪一個號碼 但是不能刪到最高跟最底的數字 所以不能刪到-83,-20;-90,-12; 但是要知道它的位置 ex 2 : 數字7,3,6,2,5; 位置0,1,2,3,4 數字7和2不能刪除~假如我是刪掉6的話~~位置就是2~~然後SHOW出這100個被刪除的位置

aa.jpg

 

此文章來自奇摩知識+如有不便請留言告知

最佳解答:

int nData[501]; <--將501個數字放入 short nPosition[100]; //刪除的數字位置 short i, j, k, n, nIndexPosition, nMaxPos, nMinPos, nHeadofGroup; int nMax, nMin; for (i = 0, nIndexPosition = 0; i < 501 && nIndexPosition < 100; nIndexPosition ++) { nMax = DEF_MIN_VALSE; nMin = DEF_MAX_VALSE; nHeadofGroup = i; for (j = 0; j < 5 && i < 501; j ++, i ++) { if (nData[i] > nMax) { nMax = nData[i]; nMaxPos = j; } if (nData[i] < nMin) { nMin = nData[i]; nMinPos = j; } } k = rand ()% 3; //可以刪的三個位置中的第幾個 for (j = 0, n = 0; j < 5; j ++) { if (j != nMaxPos && j != nMinPos) { if (n == k) j = 5; else n ++; } } nPosition[nIndexPosition] = nHeadofGroup + n; }

其他解答:8081B933AEEFE995
arrow
arrow

    dlxpxv7 發表在 痞客邦 留言(0) 人氣()