此为学校online judge的题目,源代码如下
#include<stdio.h>
void swap(int *p1,int *p2){
int i;
i = *p1;
*p1 = *p2;
*p2 = i;
}
int main()
{
int a,b,r1,r2;
while(~scanf("%d%d%d%d",&a,&b,&r1,&r2)){
if(a<b) swap(a,b);
if(r1<r2) swap(r1,r2);
if(2*r1>b||2*r2>b||(b-(r1+r2))<0||(a-(r1+r2))<0)
{
printf("NO\n");
}
else
{
int t1=b-(r1+r2),t2=a-(r1+r2);
if(t1*t1+t2*t2>=(r1+r2)*(r1+r2))
printf("YES\n");
else printf("NO\n");
}
}
return 0;
}
首先ide内会有如下warning:
然后在oj提交答案后会有如下报错:
但是Ide跑这段代码是没有erros的
百度上的答案都看不懂,所以小白在这里想请教一下各位!
整数不能隐式转换成指针,应该为
swap(&a, &b)