小不点黑客


私信TA

用户名:YaDajin

访问量:997

签 名:

专研

等  级
排  名 62981
经  验 208
参赛次数 0
文章发表 1
年  龄 20
在职情况 学生
学  校 桂林电子科技大学
专  业 计算机类

  自我简介:

喜欢专研东西,不管是学什么。

解题思路:

//正确的代码

#include<stdio.h>

int main()

{

    double x,y;

    scanf("%lf",&x);

    if (x<1)

    {

        y=x;

        printf("%g\n",y);

    }

    else if(x<10)

    {

        y=2*x-1;

        printf("%g\n",y);

    }

    else

    {

        y=3*x-11;

        printf("%g\n",y);

    }

}

//有漏洞的代码

#include<stdio.h>

int main(){

    int x,y;

    scanf("%d",&x);

    if(x<1){

        y=x;

    }

    else if(1<=x&&x<10){

        y=2*x-1;

    }

    else{

        y=3*x-11;

    }

printf("%d",y);

    return 0;

}






注意事项:大家忽略了(x<1)的情形和小数点的情形,对于(x<1)的那一部分,如果输入小数,是永远输出0的,此题看的是数据类型的运用才是真正要考究的。不过系统竟然把有bug的代码通过了,真的是不理解





参考代码:

 

0.0分

0 人评分

  评论区

  • «
  • »