#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;
}
問題出在不及格中的最佳成績有可能是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