运行到最后的printf报错,但不清楚为什么,代码下面放出的报错的大概位置

#include
int main()
{
int x;
double sum=0;
int cnt=0;
printf("请输入数字的数量:");
scanf("%d",&cnt);
int number[100];
int i;
if(cnt>0)
{ for(i=0;i
{
scanf("%d",&x);
number[i]=x;
sum+=x;
}
double l=1.0*sum/cnt;
}printf("%d",l);
return 0;}

img

if (cnt > 0){

......
double l=1.0*sum/cnt; // 这里定义的 l 的作用域在 if(){ 大括号内 }
} printf("%d",l); // 这里的 l 因为作用域的原因,就是未定义变量了,同时输出 double 型数据,用 %f 。

变量l是在if里面声明的,然后你在if外面输出?


#include<stdio.h>

int main()
{
    int x;
    double sum=0;
    int cnt=0;
    printf("请输入数字的数量:");
    scanf("%d",&cnt);
    int number[100];
    int i;
if(cnt>0)
{
    for(i=0;i<cnt;i++)
    {
        scanf("%d",&x);
        number[i]=x;
        sum+=x;
    }
double l=1.0*sum/cnt;
printf("%.2f",l);
}
return 0;
}

你用 %f 打印试试

报错内容是啥啊