都都 发布留言 2008-7-3 01:42
新手求助
大家好,我学C语言才刚两天,编了一个选择语句的程序
{
float x,y;
scanf("%f",&x);
if (x<1)
y=x;
else if (1<=x<10)
y=2*x-1;
else
y=3*x-11;
printf("%f",y);
getch();
}
当x大于10的时候输出的一直是y=2x-1,而不是y=3x-11。
希望大家能帮我找出错误,谢谢
gdsing 发布留言 2008-7-3 02:58
#include
int main(){
double x,y;
scanf("%lf",&x);
if(x<1){
y=x;
}else if(1<=x<10){ //1<=x<10;这里要您自己拆开,C没那么智能理解这么复杂的关系式
y=2*x-1;
}else{
y=3*x-11;
}
printf("%lf\n",y);
getch(); //warning: implicit declaration of function `getch'
return 0;
}cxhiou 发布留言 2008-7-3 09:07
else if (x>=1&&x<10)都都 发布留言 2008-7-4 00:52
谢谢楼上的两位死了都要C 发布留言 2008-7-4 00:56
if (1<=x<10) 永远为真``因为 1<=x 不是1就是 0 , 而 0 和1 永远<10都都 发布留言 2008-7-5 03:20
谢谢楼上的,看来我对C语言的理解还很少。
又有一个小问题
float m;
m=1/3;
printf("f",m);
这里m的结果为什么是0,而不是0.3。
谢谢解答fulanlinghun 发布留言 2008-7-5 04:56
我也才学C两天,一下是我的看法,说得不知道对不对,请高手指点一下
这个我也试了一下,结果也是0.000000,但是如果把m=1/3换成m=1.000000/3.000000,结果就变成了0.333333,我想可能是程序把1和3看做是整形常量,1/3得出的结果也是整形,然后把整形转换成浮点型付给m,所以就只剩0了
我也是刚学C,刚看了一个教程,是黑客基地的,你是怎么学c的,说说好吗benyu1107 发布留言 2008-7-5 08:55
除法运算符 “/ ”:注意两个整数相除,结果为整数,“向零取整”的方法。都都 发布留言 2008-7-5 13:55
[un]fulanlinghun[/un] 在 2008-7-5 04:56 的发言:[/bo]
我也才学C两天,一下是我的看法,说得不知道对不对,请高手指点一下
这个我也试了一下,结果也是0.000000,但是如果把m=1/3换成m=1.000000/3.000000,结果就变成了0.333333,我想可能是程序把1和3看做是整形常量, ... |
你好,我还是在按照谭老师的那本书在学习。
谢谢你的回复,你说的很对。
希望我们共同学习共同进步。
页: [1]