[問題] runtime error
想請問一下 為什麼有些C code 在acm用ansi C編譯的時候會runtime error
但是用C++ 編譯卻會過
是有哪些東西在C是不能用的嗎 不過我用gcc編譯都是可以的
所以我想不太清楚問題在哪裡
比如說下面這個例子
#10589
#include<stdio.h>
#include<math.h>
int inorout(double x ,double y,double a){
double t1,t2,t3,t4;
if(x>a || y>a)
return 0;
t1=sqrt( pow(x,2)+pow(y,2) );
t2=sqrt( pow(a-x,2)+pow(y,2));
t3=sqrt( pow(x,2)+pow(a-y,2));
t4=sqrt( pow(a-x,2)+pow(a-y,2));
if(t1>a || t2>a || t3>a ||t4>a)
return 0;
else
return 1;
}
int main(){
int M,N,i;
double x,y,a;
while(1){
scanf("%d %lf",&N,&a);
if(N==0 && a==0)
break;
M=0;
for(i=0;i<N;i++){
scanf("%lf %lf",&x,&y);
if(inorout(x,y,a))
M++;
}
printf("%.5lf\n",(double)M*a*a/(double)N);
}
}
或是
#10783
#include<stdio.h>
int main(){
int Ncase,temp;
int a,b,sum=0,round=1;
char buf[100],*p;
fgets(buf,100,stdin);
for(Ncase=0,p=buf;*p>='0';Ncase=Ncase*10+*p++-'0'){}
while(Ncase){
fgets(buf,100,stdin);
for(a=0,p=buf;*p>='0';a=a*10+*p++-'0'){}
fgets(buf,100,stdin);
for(b=0,p=buf;*p>='0';b=b*10+*p++-'0'){}
if(a>b){
temp=a;
a=b;
b=temp;
}
if(a%2==0)
a++;
if(b%2==0)
b--;
for(;a<=b;a+=2){
sum+=a;
}
printf("Case %d: %d\n",round++,sum);
sum=0;
Ncase--;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.84
推
02/05 11:52, , 1F
02/05 11:52, 1F
→
02/05 11:52, , 2F
02/05 11:52, 2F
→
02/05 11:52, , 3F
02/05 11:52, 3F
→
02/05 12:13, , 4F
02/05 12:13, 4F
推
02/05 14:11, , 5F
02/05 14:11, 5F
→
02/05 15:06, , 6F
02/05 15:06, 6F
推
02/05 15:17, , 7F
02/05 15:17, 7F
推
02/05 15:20, , 8F
02/05 15:20, 8F
→
02/05 15:20, , 9F
02/05 15:20, 9F
→
02/05 15:36, , 10F
02/05 15:36, 10F
推
02/05 15:44, , 11F
02/05 15:44, 11F
→
02/05 15:44, , 12F
02/05 15:44, 12F
推
02/05 15:46, , 13F
02/05 15:46, 13F
→
02/05 15:59, , 14F
02/05 15:59, 14F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
6
14
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章