|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- int x,y;
- printf("x=");
- scanf("%d",&x);
- if(x>=-5&&x<0&&x!=-2)
- y=1/(x+2);
- if(x>=0&&x<5)
- y=1/(x+5);
- if(x>=5&&x<10)
- y=1/(x+12);
- else
- y=0;
- getchar();
- printf("y=%.1f",y);
- return 0;
- }
复制代码
这是我自己码的代码,编译没什么问题,可是就是运行不成功,怎样都求不出y的值
本帖最后由 BngThea 于 2017-11-2 17:01 编辑
首先,你的y应该定义为float
其次,C语言的整数相除会取整,所以你应该将1改为1.0,这样每次计算可以得到正确的数值
最后,你的代码中else只和 if(x>=5&&x<10)这一句匹配,所以只要x不满足这个if判断
结果肯定为0,
正确的做法如下:
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- int x;
- float y;
- printf("x=");
- scanf("%d",&x);
- if(x >= -5 && x < 0 && x != -2)
- y = 1.0 / (x + 2);
- else if(x >= 0 && x < 5)
- y = 1.0 / (x + 5);
- else if(x >=5 && x < 10)
- y = 1.0 / (x + 12);
- else
- y = 0;
- getchar();
- printf("y=%.1f",y);
- return 0;
- }
复制代码
|
|