为什么if语句用出来这个程序没有输出


int I,a;double c;
    scanf("%d",I);
    if(I<100000)
    {a=1;c=I*0.1;}
    else if(100000<I<=200000)
    {a=0;c=(I-100000)*0.075+10000;}
    else if(200000<I<=400000)
    {a=2;c=(I-100000)*0.075+10000+(I-200000)*0.05;}
    else if(400000<I<=600000)
    a=3;
    else if(600000<I<=1000000)
    a=4;
    else 
    a=5;
 switch(0){
        case 1:printf("%.2f",c);
        case 0 :printf("0");
        case  2:printf("%.2f",c);
        case 3:printf("%.2f",(I-100000)*0.075+10000+(I-200000)*0.05+(I-400000)*0.03);break;
        case 4:printf("%.2f",(I-100000)*0.075+10000+(I-200000)*0.05+(I-400000)*0.03+(I-600000)*0.015);break;
        case 5:printf("%.2f",(I-100000)*0.075+10000+(I-200000)*0.05+(I-400000)*0.03+(I-600000)*0.015+(I-1000000)*0.01);break;
        default:printf("no");break;
    }

因为你的scanf没有取地址。

scanf("%d",&I);