注册 登录
编程论坛 C++教室

高手帮我改下,为什么老提示错误。错在那里?

xfgczhj 发布于 2009-10-29 11:50, 431 次点击
  这是个计价器程序,起步2元一公里,每公里运行价1.5元,超过5公里后每公里2.25元,我编写的如下:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void)
{
 float A,y;
 int x;
 
 printf("请输入行车里程:\n");
 scanf("%f",&A);
 x = (int)A+1;
 if(x<1) printf("应付车款 2 元.");
 if(1<=x && x<5) y=2+1.5*(x-1);
 printf("应付车款 %.2f 元",y);
 if(5 <= x) y=2+2.25*(x-1);
 printf("应付车款 %.2f 元",y);
 return 0;
}





不知道是那个地方有错,请指教下.....
2 回复
#2
newCpp2009-10-29 12:09
程序代码:
#include <stdio.h>  
int main(void)
{
float A,y;
int x;
 
printf("请输入行车里程:\n");
scanf("%f",&A);
x = (int)A+1;
if(x<1)
 printf("应付车款 2 元.");
if(x>=1&&x<5)
{
 y=2+1.5*(x-1);
printf("应付车款 %.2f 元",y);
}
if(x>= 5)  
{
y=2+2.25*(x-1);
printf("应付车款 %.2f 元",y);
}
return 0;
}
if语句后面如果只有一句代码的话,可以省略大括号,如果不是一句代码的话,应该加上大括号不然那个就不是你想要的结果了
另外一就是变量应该放置在左边,被判定的数值或者变量放置在右边!!
你可以仔细看一下我改过后的代码同你的比较一下下!很容易区别出来的!!
不过我也新手有兴趣的话加我Q:294696649
一起学习O(∩_∩)O哈!!!
#3
杨柳冰封2009-10-29 16:24
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(void)
{
float A,y;
int x;
 
printf("请输入行车里程:\n");
scanf("%f",&A);
x = (int)A;
if(x<=1)  
         printf("应付车款 2 元.");
if(1<x && x<=5)  
{
    y=2+1.5*(x-1);
    printf("应付车款 %.2f 元",y);
}
if(5 < x)  
{
    y=2+2.25*(x-1);
    printf("应付车款 %.2f 元",y);
}
return 0;
}
试试这个!我觉得那个临界点设在低位比较合理!在一公里以内时2元,应该包括一公里!
1