#15874: 自己測試AC可是WA


ryanyang_1234 (秋霜)

School : 臺北市私立延平高級中學
ID : 83267
IP address : [203.72.178.252]
Last Login :
2020-10-30 16:56:53
d984. 棄保效應 -- 板橋高中教學題 | From: [36.227.46.72] | Post Date : 2018-11-04 20:11

#include<iostream>
using namespace std;

int s(int a,int b,int c){
if(a<b&&a<c) return a;
else if(b<a&&b<c) return b;
else if(c<a&&c<b) return c;
}
int m(int a,int b,int c){
if((a>b&&a<c)||(a>c&&a<b)) return a;
else if((b<a&&b>c)||(b<c&&b>a)) return b;
else if((c>b&&c<a)||(c<b&&c>a)) return c;
}
int l(int a,int b,int c){
if(a>b&&a>c) return a;
else if(b>a&&b>c) return b;
else if(c>a&&c>b) return c;
}
int main(){
int a,b,c,d,e;
while(cin>>a>>b>>c){
if(s(a,b,c)+m(a,b,c)>l(a,b,c)) d=m(a,b,c);
else if(s(a,b,c)+m(a,b,c)<l(a,b,c)) d=l(a,b,c);
if(d==a) cout<<"A\n";
else if(d==b) cout<<"B\n";
else if(d==c) cout<<"C\n";
}
}

哪裡錯??

 
#15875: Re:自己測試AC可是WA


OwO310659 (OwO)

School : 新北市立板橋高級中學
ID : 58647
IP address : [140.122.187.100]
Last Login :
2020-07-03 15:48:56
d984. 棄保效應 -- 板橋高中教學題 | From: [106.105.27.148] | Post Date : 2018-11-04 21:30

可以注意本題的範圍 0 ≤ a, b, c ≤ 2147483647(2^31-1) ,
而 2^31-1 即是 int 所能儲存的整數上限,
所以使用 int 運算且當 a, b, c 都很大的時候,
s(a,b,c)+m(a,b,c) 可能會造成溢位而導致判斷錯誤~

以上希望有幫助到你~ OwO

 
ZeroJudge Forum