大家帮我看一下第7行什么意思
#include <stdio.h>int main()
{
int ch;
while (scanf("%d", &ch) == 1 && ch >= 0)
;
return 0;
} 被这几个运算符整蒙了 double i;
for (i = 10; i > 0; i /= 2)
{
printf("%.2f\n", i);
}
还有麻烦问一下这个定义为浮点型,答案怎么就不是4了呢? double result = 1.0;
result += 2.6;
result ++;
result * 5;
result = (int)(result + 0.5)
我的天啊,这是什么意思啊,我学的过程中也没有跳课啊,为什么我看不懂呢?
第七行是whlie循环,ch接受一个整数,当ch等于1并且ch大于等于0的时候条件成立,执行whlie中的语句。比较运算符的优先级大于逻辑运算符,所以先比较然后进行逻辑与运算。 人之初 发表于 2017-7-28 18:09
第七行是whlie循环,ch接受一个整数,当ch等于1并且ch大于等于0的时候条件成立,执行whlie中的语句。比较运 ...
ch等于1并且大于等于0,那岂不是只有ch等于1的时候才会使条件成立,才会执行while中的语句,你如果输入的只要不是1就不会执行while中的语句,不知道你说的是不是这个意思 本帖最后由 人之初 于 2017-7-28 18:22 编辑
lizhiyong_11 发表于 2017-7-28 18:01
还有麻烦问一下这个定义为浮点型,答案怎么就不是4了呢?
浮点型说白了就是有小数位的,例如double i=10.0;你的代码中第一次循环的时候,i=10.0,条件成立,执行打印,然后i=i/2=5.0,条件成立继续for循环,i=i/2=2.5;条件i>0,继续执行循环语句,i=i/2=1.25;
但是当i是整型的时候,1/2的结果是0,结果只保留整数位,而且不是四舍五入,是直接舍去小数部分,这时条件不成立,结束循环。
lizhiyong_11 发表于 2017-7-28 18:15
ch等于1并且大于等于0,那岂不是只有ch等于1的时候才会使条件成立,才会执行while中的语句,你如果输入的 ...
对 就是这个意思。你是不是不太懂==>=&&这三个运算符?==表示等于,c语言中一个等号表示赋值运算符,>=大于等于,&&逻辑与,表示连接的两个表达式的结果都为真时条件才成立,他们的运算优先级不同的,&&没有==和>=的等级高,这个你可以看看这个表,运算符优先级及结合性 人之初 发表于 2017-7-28 18:21
浮点型说白了就是有小数位的,例如double i=10.0;你的代码中第一次循环的时候,i=10.0,条件成立,执行 ...
第二段代码问的是,该循环执行了几次,答案是1078次,你的回答我也懂,但是我就是不懂为什么执行了1078词而不是4次?在此先谢谢你耐心码字了 本帖最后由 人之初 于 2017-7-28 18:41 编辑
lizhiyong_11 发表于 2017-7-28 18:04
我的天啊,这是什么意思啊,我学的过程中也没有跳课啊,为什么我看不懂呢?
double result = 1.0; //定义双精度浮点型变量result并初始化为1.0
result += 2.6; //+=实际上就是result=result+2.6
result ++; //++是自增运算符,表示该变量的值+1
result * 5; //这个说实话我也没看懂,应该是乘号
result = (int)(result + 0.5) //这个int是类型强制转换,将result+0.5结果转换成整型
《带你学c带你飞》的视频中没讲到,但是可以在其他资料中找到,扩展阅读中也有介绍 人之初 发表于 2017-7-28 18:28
对 就是这个意思。你是不是不太懂==>=&&这三个运算符?==表示等于,c语言中一个等号表示赋值运算符, ...
第一段代码的问题是,输入什么值才能正常退出,按照你的思路是不是只要输入的数不是1就可以正常退出了,(ps:这是带你学习带你飞s1e15的课后题,答案是输入的值只要不是自然数,程序就能正常退出。明显咱们俩分析的和答案不一样) lizhiyong_11 发表于 2017-7-28 18:34
第二段代码问的是,该循环执行了几次,答案是1078次,你的回答我也懂,但是我就是不懂为什么执行了1078词 ...
循环条件是i>0,整型i=10,10除以2=5,5/2=2,这里能明白不?2/2=1,1/2=0,因为是整型小数部分自动舍去,当i=0时条件不满足,结束循环。
而double类型是小数,1/2=0.5,0.5>0,所以能继续循环
能明白么?0.0001他也是大于0的,满足条件,整型没有小数,1/2的结果是0 lizhiyong_11 发表于 2017-7-28 18:43
第一段代码的问题是,输入什么值才能正常退出,按照你的思路是不是只要输入的数不是1就可以正常退出了, ...
那就是我理解错了,scanf(“%d”,&ch)==1,应该是scanf函数执行的返回值,意思是函数调用成功并且输入的数字大于等于0,看看scanf函数返回值的介绍,这一点我也学的不是太扎实,得补习补习 人之初 发表于 2017-7-28 18:49
循环条件是i>0,整型i=10,10除以2=5,5/2=2,这里能明白不?2/2=1,1/2=0,因为是整型小数部分自动舍去, ...
我了个去,误会误会!看错了!真心感谢你码字!看成i>1了,已经将你上一个回答设置成最佳了 人之初 发表于 2017-7-28 18:57
那就是我理解错了,scanf(“%d”,&ch)==1,应该是scanf函数执行的返回值,意思是函数调用成功并且输入 ...
你这么一说我也有点懂了,希望下次交流,谢谢你耐心码字! lizhiyong_11 发表于 2017-7-28 18:58
我了个去,误会误会!看错了!真心感谢你码字!看成i>1了,已经将你上一个回答设置成最佳了
嗯嗯 没事 我也是刚开始学习c语言,大家一起交流学习,帮你的过程中我也能检测一下我那些知识没掌握住
页:
[1]