| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 537 人关注过本帖
标题:不知道这里面有什么差别,还望你们可以教教初学者
只看楼主 加入收藏
zhuyuzhi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2019-1-30
  得分:0 
回复 10楼 wp231957
好滴,谢谢
2019-01-30 12:38
do8do8do8
Rank: 9Rank: 9Rank: 9
来 自:沙滩
等 级:蜘蛛侠
威 望:6
帖 子:288
专家分:1456
注 册:2010-7-2
  得分:4 
喜欢你的代码~~,那就听我慢慢道来吧
我想请问一下这两段代码有什么差别吗有错误,所以必然有差别~
#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;
}

不必非得需要什么才可以
2019-01-31 01:30
brtfarewellc
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2018-11-29
  得分:4 
回复 12楼 do8do8do8
大哥您可太照顾他了,这种程序写的这样不如直接劝退,明显是书没看呢都,来网上问有什么用奥
2019-02-01 00:18







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084399 second(s), 9 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved