#24700: 求解題目的資料我測試都對 ,但送出答案卻顯示NA


ncian66@gmail.com (ian C)

學校 : 不指定學校
編號 : 123897
來源 : [114.36.206.223]
最後登入時間 :
2021-09-04 15:35:19
b964. 1. 成績指標 -- 2016年3月apcs | From: [220.136.127.67] | 發表日期 : 2021-03-15 22:54

 #include<iostream>

#include <stdlib.h>  

using namespace std;

int main(){

int n,w=0,j=0;//worse best,best worse

cin>>n;

int b[n]={0},c[n]={0},a[n]={0};

for(int i = 0;i<n;i++){

cin>>b[i];

}

for(int i = 1;i<n;i++){

for(int j = 0; j < n-i ; j++){

if(b[j]>b[j+1]){

w = b[j];

b[j] = b[j+1];

b[j+1] = w;

}

}

}

for(int i =0;i<n-1;i++){

cout<<b[i]<<" ";

}

cout<<b[n-1];

cout<<endl;

for(int i=0;i<n;i++){

if(b[i]<60){

c[i]=b[i];

j++;

}

else if(b[i]>=60){

a[i-j]=b[i];

}

}

 

 

if(c[j-1]==0){

cout<<"best case"<<endl;

}else if(c[j-1]<60){

cout<<c[j-1]<<endl;

}

if(a[0]==0){

cout<<"worst case"<<endl;

}else if(a[0]>=60){

cout<<a[0]<<endl;

}

return 0;

}

 
#24850: Re:求解題目的資料我測試都對 ,但送出答案卻顯示NA


angel08012000@gmail.com (慈慈angel)

學校 : 不指定學校
編號 : 88458
來源 : [182.235.184.58]
最後登入時間 :
2022-01-10 00:46:43
b964. 1. 成績指標 -- 2016年3月apcs | From: [220.135.30.7] | 發表日期 : 2021-03-31 22:16

問題出在不及格中的最佳成績有可能是0

所以你這樣寫會出錯

(如果把陣列初始值改成負的,if(c[j-1]<0)這樣就可以了,不過這個方法好投機,哈哈哈)

if(c[j-1]==0){

   cout<<"best case"<<endl;

}

 

如果測資給0 100

正確結果應該是

0 100

0

100

你的程式碼執行結果如下

0 100

best case

100

 
ZeroJudge Forum