加if语句后不输出结果

#include

int main()

{
float avg (float b[],float n);

float a[10]={96.0,86.0,95.0,75.5,64.5,91.5,89.5,55.0,89.5,90.0};
float x,d;

printf("1.输出平均分\n2.输出及格和不及格人数\n0.退出\n");

printf("请选择:");
scanf("%d",&d);

if (d==1)
{x=avg(a,10);
printf("%.f\n",x);
}
}

float avg (float b[],float n)
{
float j,sum=0;
int i;
for(i=0;i<10;i++)
sum=sum+b[i];
j=sum/10;
return j;
}

这个加了if语句后就不出结果了,如果去了if语句还是可以运行的,有没有人解释一下啊,谢谢了

回答:改一下输入,改为 int 类型的

img

#include<stdio.h>

float avg(float b[], float n);

int main()
{
    float a[10] = { 96.0, 86.0, 95.0, 75.5, 64.5, 91.5, 89.5, 55.0, 89.5, 90.0 };
    float x;
    int d;

    printf("1.输出平均分\n2.输出及格和不及格人数\n0.退出\n");

    printf("请选择:");
    scanf("%d", &d);

    if (d == 1)
    {
        x = avg(a, 10);
        printf("%.f\n", x);
    }
}

float avg(float b[], float n)
{
    float j, sum = 0;
    int i;
    for (i = 0; i < 10; i++)
        sum = sum + b[i];
    j = sum / 10;
    return j;
}

d不是float型吗,咋%d来获取?

d改为int类型