考題日期:2010/10/11
題號:10107
星等:2
語言:C++
題目:
題意:
每次輸入一個數字後,將輸入的數字加入原有陣列裡並排序,並從中找到中位數。
程式:
#include <iostream>
using namespace std;
int main()
{
int num[10000];
int c = 0;
int x;
while( cin >> num[c] ) //將新輸入的值放在陣列的最後
{
x = num[c];
for(int i = 0 ; i <= c ; i++)
{
if( x <= num[i] ) //尋找大於x值的位置
{
for(int j = c+1 ; j > i;j--)
{
num[j] = num[j-1]; //將欲放入x的位置空出來,其之後的數值往後放
}
num[i] = x; //將輸入值放入挖空之位置
break;
}
}
if(c%2 ==0) //找出並輸出中位數
cout<<num[c/2]<<endl;
else
cout<<(num[c/2]+num[c/2+1])/2<<endl;
c++;
}
return 0;
}
測資:
心得:
第一次參加鐵人賽,其實有點害怕自己會放棄拉,但希望自己的能堅持到最後。