c语言的一些基础问题

img

请求指导,为什么我输入2 的时候,不是跳转到else if(n=2)这条语句

#define _CRT_SECURE_NO_WARNINGS 1
#include
main()
{
    printf("                     简易转换器\n");
    printf("  1代表温度   2代表体积   3代表重量\n");

    int n; n = 0; float a; float b; int z;
    printf("n=");      scanf("%f",&n);

    if (n = 1)   //华氏度转换摄氏度
    {
    printf("a="); scanf("%f", &a);  //输入华氏度
    b = (a - 32) / 1.8;    //b代表摄氏度,a代表华氏度
    printf("%.2f",b);
    }

    else if (n = 2)   //加仑转换升
    {
         printf("1代表美加仑,2代表英加仑\n");  printf("z="); scanf("%d",&z);
        if (z = 1) //判断美加仑,英加仑
        {
            printf("a="); scanf("%f",&a);//输入美加仑
            b = a * 3.785011355034;//b代表升
            printf("%.2f",b);
        }
        else if (z = 2)
        {
            printf("a="); scanf("%f", &a);//输入英加仑
            b = a * 4.545454545454;  //b代表升
            printf("%.2f", b);
         }
     }
        
    else if (n = 2)//磅转换为公斤
    {
        printf("a="); scanf("%f",&a);  //输入磅
        b = 0.453592 * a; //b代表公斤
        printf("%.2",b);
    }
}

if里面少了个等号,应该是==