为什么用C++能过,但G++不能过哈?什么情况?

#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
const double PI=acos(-1.0);
const double eps=0.00001; 
int main(){
int cs;
scanf("%d",&cs);
int n,k;
while(cs--){
scanf("%d%d",&n,&k);
double left=0.0,right=0.0;
int i;
double arr[10001];
for(i=0;i<n;i++){
scanf("%lf",&arr[i]);
arr[i]=arr[i]*arr[i];
right+=arr[i];
}
++k;
right=right/k;
double mid;
int ans;
while((right-left)>eps){
ans=0;
mid=(right+left)/2;
for(i=0;i<n;i++){
if(mid<arr[i])
ans+=int(arr[i]/mid);
}
if(ans>=k)
left=mid+eps;
else
right=mid-eps;
}
printf("%.4lf\n",(right+left)/2*PI);
}
return 0;
}

缥缈止盈
浏览 123回答 1
1回答

慕容森

你的文件名是什么后缀,这个和编译器有关gcc为GNU Compiler Collection的缩写,可以编译C和C++源代码等,它是GNU开发的C和C++以及其他很多种语言 的编译器g++也能编译C源代码,只不过把会把它当成C++源代码,后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的
打开App,查看更多内容
随时随地看视频慕课网APP