#11751: UVa能過這邊過不了


s313057 (SilverBlade)

學校 : 國立南科國際實驗高級中學
編號 : 57390
來源 : [140.116.247.232]
最後登入時間 :
2017-02-18 10:16:35
d190. 11462 - Age Sort -- UVa11462 | From: [140.116.247.232] | 發表日期 : 2017-02-17 14:11

#include<stdio.h>
#include<vector>
#include<algorithm>

int main(){

   int n,j;
   std::vector<int> v;

   while(scanf("%d",&n)!=EOF && n!=0)
   {
   v.clear();
   for(int i=0;i<n;i++)
   {
      int t;
      scanf("%d",&t);
      v.push_back(t);
   }
   sort(v.begin(),v.end());
   for(int i=0;i<n-1;i++)
   {
      j=i+1;
      printf("%d ",v[i]);
   }
   printf("%d\n",v[j]);

   }
   return 0;

}

 

 

而且排序的題目為啥測資告訴我正確答案是99?

 
#15976: Re:UVa能過這邊過不了


Jamesking (籃球大帝)

學校 : 不指定學校
編號 : 23555
來源 : [36.232.154.15]
最後登入時間 :
2024-02-25 20:32:09
d190. 11462 - Age Sort -- UVa11462 | From: [111.252.100.207] | 發表日期 : 2018-11-09 20:04

改成這樣就行了
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int main()
{
long n;// 0<n<=2000000
int temp;
vector<int> myvec;
 
while (cin >> n && n != 0)//n等於0則跳出迴圈
{
myvec.clear();
//輸入n個數字到myvec
for (long i = 0; i < n; i++)
{
cin >> temp;
myvec.push_back(temp);
}
 
sort(myvec.begin(), myvec.end());//對myvec進行排序
 
//輸出排序後的數列,注意空白出現的位置,不然會 Presentation error
cout << myvec[0];
for (long i = 1; i < myvec.size(); i++)
{
cout << " " << myvec[i];
}
cout << endl;
}
return 0;
}
 
 
 
#15984: Re:UVa能過這邊過不了


OwO310659 (OwO)

學校 : 新北市立板橋高級中學
編號 : 58647
來源 : [118.150.111.60]
最後登入時間 :
2024-04-25 01:16:40
d190. 11462 - Age Sort -- UVa11462 | From: [106.105.27.148] | 發表日期 : 2018-11-09 23:18

回應樓主,
主要的問題在於當 N=1 時,
以你的寫法並不會進入 line21 的 for 迴圈,
導致 j 沒有被重置到, (還保留上一次的數值)
所以輸出到錯誤的位置導致WA~

至於 Uva 會過嘛...
可見 Uva 沒有 N=1 的測資(或是在第一筆) =w=

以上希望有幫助到你~ OwO

 

另外順便回應樓上,
幫助別人並不是教他改成會AC的code就好,
而是應該點出問題所在才是真正能幫助到他人學習的方式,
你這麼做並不會幫助到他人,
而是使得他人少了一次學習的機會導致下次仍然會犯相同的錯誤~

 
ZeroJudge Forum