解题思路:
//正确的代码
#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 人评分
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:569 |
汽水瓶 (C语言代码)怎么答案错误?????浏览:826 |
【出圈】 (C语言代码)用单项循环链表浏览:841 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:600 |
C语言训练-排序问题<1> (C语言代码)浏览:1411 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:689 |
C语言训练-角谷猜想 (C++代码)(3N+1问题)浏览:1850 |
川哥的吩咐 (C++代码)浏览:1076 |
C语言训练-排序问题<1> (C++代码)浏览:632 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:436 |