求助,不知道哪里错了,输出一直是0.00

B2054 求平均年龄

ECHO2020 @ 2021-12-12 13:17:02

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,ans=0;
    cin>>n;
    float a[n+1];
    for(int i=1;i<=n;i++){
        cin>>a[i];
        ans=(a[i]+a[i-1])/2;
    }
    printf("%.2f",ans);
    return 0; 
}

by IaLWH @ 2021-12-12 13:20:02

float a[n-1]能编译对也是奇了


by IaLWH @ 2021-12-12 13:20:50

@PluckDuck 打错了是float a[n+1];


by IaLWH @ 2021-12-12 13:22:11

还有printf("%.2f",ans);

ans是int吧


by IaLWH @ 2021-12-12 13:24:46

@ECHO2020 还有第9行也错了,a[0]的值没确定


by Loser_King @ 2021-12-12 13:29:30

平均数不是这么算的。。。

比如输进来的三个数 a,b,c,平均数应该是 A=\frac{a+b+c}{3}=\frac{1}{3}a+\frac{1}{3}b+\frac{1}{3}c

你算出来的是 B=\frac 1 2 b+\frac 1 2 c,直接把 a 给丢了

除此之外还有巨大多错误


by ECHO2020 @ 2021-12-15 17:20:21

已过了,谢谢各位大佬


|