C 我是一个初学者,这段代码需要给出属性的详细信息。它会自动将属性类型选择为house。我该怎么办?

C 我是一个初学者,这段代码需要给出属性的详细信息。它会自动将属性类型选择为house。我该怎么办?,c,C,我必须详细了解物业的长度、宽度、是否获得政府批准,以及加上10%的税后的成本和估计成本。输出没有给我选择属性类型的选项 #include <stdio.h> #include <stdbool.h> int main() { char l, f, pte; float length ,breadth,property_cost; float cost_per_squarefeet;

我必须详细了解物业的长度、宽度、是否获得政府批准,以及加上10%的税后的成本和估计成本。输出没有给我选择属性类型的选项

 #include <stdio.h>
    #include <stdbool.h>
    int main()
    { 
        char l, f, pte;
        float length ,breadth,property_cost;
        float cost_per_squarefeet;
        bool approved_by_govt_OR_NOT;
        printf("enter the length\n");
        scanf("%f" ,&length);
        printf("enter the breadth\n");
        scanf("%f" ,&breadth);
        printf("enter the cost per squarefeet\n");
        scanf("%f" ,&cost_per_squarefeet);
        printf("enter property type\n");
        if(pte=='1')
    {
            printf("property type is land\n");
        }
        else if(pte=='f')
        {
            printf("property type is flat\n");
        }
        else
        {
            printf("property type is house\n");
        }
        property_cost =(length*breadth*cost_per_squarefeet) * (10/100.0);
        printf("property cost is %f" ,property_cost);
        return(0);
    }
#包括
#包括
int main()
{ 
charl,f,pte;
浮动长度、宽度、财产成本;
每平方英尺浮动成本;
bool是否由政府批准;
printf(“输入长度\n”);
扫描频率(“%f”和长度);
printf(“输入宽度\n”);
扫描频率(“%f”和宽度);
printf(“输入每平方英尺的成本\n”);
scanf(“%f”和每平方英尺成本);
printf(“输入属性类型\n”);
如果(pte=='1')
{
printf(“财产类型为土地”);
}
否则如果(pte='f')
{
printf(“属性类型为平面\n”);
}
其他的
{
printf(“财产类型为房屋”);
}
物业成本=(长*宽*每平方英尺成本)*(10/100.0);
printf(“财产成本为%f”,财产成本);
返回(0);
}

pte
是未初始化的,因为它是一个局部变量,所以它很可能是一座房子,因为您正在读取当时内存中的任何内容

您需要使用
scanf()
或类似工具来获取用户输入。

您忘记了
scanf()
用户输入。
pte
的值从未设置,因此它既不等于“l”也不等于“f”,并且始终会执行else语句。

不正确
pte
未初始化,访问它会显示未定义的行为。@IgorTandetnik Yep,将其与全局变量混淆。@IgorTandetnik我在printf(属性类型)行之后使用了scanf,但它仍然自动选择类型作为房屋。当用户输入“l”时,它应该给出土地,而当输入“f”时,它应该给出平面,与
1
(数字一)比较,而不是与
l
(小写字母Ell)比较。无论如何,请显示您的
scanf
调用,它可能不正确。@t保存您的
scanf()
行,这些行不适用于
pte
。此程序通过访问未初始化的变量
pte
来显示未定义的行为。该变量在何处以及如何获得其值?在什么情况下,您希望它具有值
'1'
,或
'f'
?您遗漏了一行:在
printf之后(“输入属性类型\n”)
添加时,不要忘记在
%c
之前放置空格。我知道了,但如何设置pte的值?您想请求用户输入。输入是一个字符,因此指定
“%c”
,并使用
&pte
将其存储在pte的地址。将下面一行放在if语句的正上方<代码>扫描频率(“%c”和pte)