为什么scanf函数输入099会等于99呀?

问题遇到的现象和发生背景

为什么测试的时候输入099会打印A呀?是默认099等于99了吗?

用代码块功能插入代码,请勿粘贴截图
#include
int main () 
{
    for(int i=0;i<=0;){
        fflush(stdin);//为下一次循环清理缓存 
        int a=1000;//设定a的初始值为一个确定的值,避免编译器给的初始值会触发死循环 
        printf("%s","请输入一百分制成绩:");//提醒输入的是0~100的整数 
        scanf("%d",&a);
        //判断部分 
        if (a>=90&&a<=100)
        {
            printf("%c",'A');
            i=100;//控制循环
        }else if (a<90&&a>=80)
        {
            printf("%c",'B');
            i=100;//控制循环
        }else if (a<80&&a>=70)
        {
            printf("%c",'C');
            i=100;//控制循环
        }else if (a<70&&a>=60)
        {
            printf("%c",'D');
            i=100;//控制循环
        }else if (a<60&&a>=0)
        {
            printf("%c",'E');
            i=100;//控制循环
        }else{
            printf("%s","数据错误请重新输入一百分制成绩:");
            i=-1;//控制循环
        }
    }
    return 0;
}

%d接收的输入就是十进制的整数,099十进制就是99