回复 10楼 wp231957
好滴,谢谢
喜欢你的代码~~,那就听我慢慢道来吧
我想请问一下这两段代码有什么差别吗有错误,所以必然有差别~
#include<stdio.h>
int main()
{
float a;
scanf("%f",&a);
if(0<a<=15)//这个表达式厉害,我测试了好几组数据,竟然无论输入什么数都可以执行(这一句)
printf("%.2f",4.0*a/3); //这一句
//解读0<a<=15,根据运算符优先级,< 比 <= 大一级,所以先运算0<a, 0<a结果无非就是0或者1,而1或者0明显都是<=15的,所以 0<a<=15永远为1
//所以if(0<a<=15)等同if(1),所以0<a<=15表达式起不到想要的作用,如你可以输入一个负数 -1000,它还照样执行~~。
if(a>15)
printf("%.2f",2.5*a-17.5);
return 0;
}//部分错误,有四组测试数据但是有一组没能通过//那四组数据~~~~
//以上程序,猜测是(0-15】,【16---】之间的判断,而实际你写成了【----】无穷区间,要想做成
//以下程序,是【--14】,【15---】之间的判断
#include <stdio.h>
int main ()
{
double a;
scanf("%lf",&a);
double sum;
if(a>=15)
{
sum=2.5*a-17.5;
}
else
{
sum=4.0*a/3;
}
printf("%.2f",sum);
return 0;
}