C 我是一个初学者,这段代码需要给出属性的详细信息。它会自动将属性类型选择为house。我该怎么办?
我必须详细了解物业的长度、宽度、是否获得政府批准,以及加上10%的税后的成本和估计成本。输出没有给我选择属性类型的选项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;
#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)代码>