#include<stdio.h>
#include<algorithm>
int main(){
int a[10001];
for(int i=1;;i++){
scanf("%d",&a[i]);
std::sort(a+1,a+i+1);
if(i%2==1){
printf("%d\n",a[i-i/2]);
}else{
printf("%d\n",(a[i/2]+a[i/2+1])/2);
}
}
}
#include
#include
int main(){
int a[10001];
for(int i=1;;i++){
scanf("%d",&a[i]);
std::sort(a+1,a+i+1);
if(i%2==1){
printf("%d\n",a[i-i/2]);
}else{
printf("%d\n",(a[i/2]+a[i/2+1])/2);
}
}
}
因為您的程式碼是在迴圈裡才輸入資料,然而題目是要求讀到檔尾(EOF)。因此在迴圈裡不一定會讀到資料,所以就卡在那裡無法正常結束。
因此可以考慮使用 while(scanf("%d", &a[i]) == 1) ,這樣可以確保他有讀到數字,再進入迴圈裡實作題目所要求的部分。
以上,希望有幫助到您。