算平均年龄 为什么这么写会运行错误

问题描述
班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。
输入
本题有多组测试数据,每组测试数据描述如下:
首先是一个整数n,表示班级里有n个人,然后是n个正整数,表示班上n的人的年龄。其中1<=n<=1000.
输出
每组测试数据输出一行,给出班上所有学生的平均年龄,结果保留两位小数。
输入样列
5 1 2 3 4 5
4 1 2 3 4
输出样例
3.00
2.50

#include<stdio.h>
int main()
{
    int n,i;
    int age[i];
    double sum,ave;
    while(~scanf("%d",&n)){
        sum=0;
        for(i=0;i<n;i++){
            scanf("%d",&age[i]);
            sum+=age[i];
        }
        ave=sum/n;
        printf("%.2f\n",ave);
    }
    return 0;
}

帮你修改好了

#include <stdio.h>

#define N 1000

int main()
{
    int n, i;
    int age[N];
    float sum, ave;
    while (scanf("%d", &n) == 1)
    {
        sum = 0;
        for (i = 0; i < n; i++)
        {
            scanf("%d", &age[i]);
            sum += age[i];
        }
        ave = sum / n;
        printf("%.2f\n", ave);
    }
    return 0;
}

第5行,数组定义修改为:int age[100];


#include<stdio.h>

int main()

{

    int n,i;

    int age[100];

    double sum,ave;

    while(~scanf("%d",&n)){

        sum=0;

        for(i=0;i<n;i++){

            scanf("%d",&age[i]);

            sum+=age[i];

        }

        ave=sum/n;

        printf("%.2f\n",ave);

    }

    return 0;

}