#include <stdio.h>
#include <conio.h>
int main()
{
float L=0; //L is litre
float gallon;
gallon = 3.785*L;
char input;
float cost;
printf("Hello, welcome to PetrolUpHere!!\n");
printf("Would u like unleaded or diesel fuel?");
scanf("%c", &input);
printf("Enter the litre you want to fuel:");
scanf("%f", &L);
switch (input) {
case 'u' :
cost = 1.98*gallon;
printf("The cost is :%f ",&cost);
break;
case 'd' :
cost = 1.29*gallon;
printf("The cost is :%f ",&cost);
break;
}
getch();
return 0;
}
程序无法显示成本结果,只有在我输入scanf语句和L值后才显示成本= 0.0000。我是c程序的新手,希望可以得到帮助。感谢
答案 0 :(得分:1)
你已经完成了乘以L来计算加仑
float L=0; //L is litre
float gallon;
gallon = 3.785*L; //here gallon is zero already
所以你可以探索
printf("The cost is :%f ",&cost);
out put he cost is :address
所以试试
gallon = 3.785*L; // try this here
switch (input) {
和
printf("The cost is :%f ", cost);
答案 1 :(得分:1)
我认为这是问题,加仑是0:
float L=0; //L is litre
gallon = 3.785*L;
你读完升后你应该多个:
float L=0; //L is litre
float gallon=3.785f;
...
//read liters
scanf("%f", &L);
...
cost = 1.98f*gallon*L;
答案 2 :(得分:1)
使用以下代码:
float my_var;
printf("Hi %f", &my_var);
您将打印地址到my_var,即:它存储在内存中的位置。不是变量的值。我认为你弄得很困惑,因为你的scanf需要一个指向你想要更新的值存储位置的指针。做一些关于指针的阅读,它会更清晰一些。现在的解决方法是将printf
语句更改为:
float my_var;
printf("Hi %f", my_var);
此外,您需要在用户输入所有内容后移动您的加仑线,否则您只需在程序开始时将其乘以0,它将保持为零而不是预期结果。
答案 3 :(得分:0)
您需要进行2次更改
gallon = 3.785*L;
需要移到scanfs
第二次更改是打印cost
而不是&cost
。
答案 4 :(得分:0)
你应该写一句“加仑= 3.785 * L;”从用户读取L后,其他明智的加仑将变为零,因为L初始化为零。因此,成本的价值也变为零。
并删除'&amp;'来自printf声明。 这次肯定会有用。