c语言分支程序嵌套输出结果有误怎么改正呀

邮政局收钱,<=2kg,一次性收取3.25元,高于2kg,每kg加收1.05元,不足1kg按1kg算。


#include<stdio.h>
int main()
{
    int n,a;
    double x;
    printf("输入n的重量为多少克\n");
    scanf("%d",&n); 
    if(n<=2000){
    printf("收取3.2元"); 
}
    if(n>2000){
    a=n%1000;
    if(0<a<1000){ 
    x=(n-2000-a+1000)*1.05/1000+3.25;
    printf("收取%lf元",x);
    }
    if(a==0){       //这块代码有误会和上面的一起输出
        x=(n-2000)*1.05/1000+3.25;
        printf("收取%lf元",x);
    }
}
    return 0;
}

题目说收取3.25,printf("收取3.2元");你给打折扣啊
if(0<a<1000){ 改为if(a>0 && a<1000)

 
#include<stdio.h>
int main()
{
    int n;
    double x,d,e,all=3.25;
    printf("输入n的重量为多少克\n");
    scanf("%d",&n); 
    if(n>2000)
    {
        d = (n-2000)/1000.0;
        e = (int)d;
        all += e*1.05;
        d = d - e;
        if(d>0)
           all += 1.05;
    }
    printf("%lf",all);
    return 0;
}