尼玛,这题太搞了,已经推出公式了,还是不对,看了网上正确的代码也没发现自己错的地方,尼玛
这是网上的
1 #include <stdio.h> 2 #include <math.h> 3 void main() 4 {double c[3001],s[3001],x,y; 5 int n,i,t; 6 scanf("%d",&t); 7 while (t--) 8 { 9 scanf("%d",&n); 10 scanf("%lf%lf",&x,&y); 11 for (i=1;i<=n;i++) 12 scanf("%lf",&c[i]); 13 s[1]=c[1]; s[0]=s[1]; 14 for (i=2;i<=n;i++) 15 {s[i]=s[i-1]+c[i]; 16 s[0]+=s[i]; 17 } 18 printf("%.2lf\n",(n*x+y-2*s[0])/(n+1)); 19 if (t) printf("\n"); 20 } 21 }
这是我的,虽然丑了点,逻辑上好像没错
1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 double c[3001]; 5 int main(){ 6 int t; 7 cin>>t; 8 cin.ignore(); 9 double an,an1,a1; 10 while(t--){ 11 a1=0; 12 int n; 13 cin>>n>>an>>an1; 14 if(n==0){ 15 printf("%.2lf\n",an1); 16 if(t>0) 17 cout<<endl; 18 continue; 19 } 20 cin>>c[1]; 21 a1+=c[1]; 22 for(int i=2;i<n+1;i++){ 23 double temp; 24 cin>>temp; 25 c[i]+=c[i-1]+temp; 26 a1+=c[i]; 27 } 28 a1=(an1+n*an-2*a1)/(n+1); 29 printf("%.2lf\n",a1); 30 if(t>0) 31 cout<<endl; 32 } 33 }