循环!
是重点,也是难点,while,do while,for,需要谨慎分析,根据需求合理运用。
几个蛋疼点就是
1.do while在while后跟的表达式括号外要有“;”。不搞忘会死星人- -
2.另外for是不需要“;”的,但是括号里的表达式要用“;”分隔而不是“,”。傻傻分不清楚有木有!
3.for中表达式1为初始化,2为判定条件,3为变化控制;其中式子1,2可以省略,但是式子可以随便灰~,“;”壮哉我大分号却一定要苦逼守候在表达式2左右,why r u so diao?
来看看今天老师出的抠脚题
----------------------------------------------------我是割手-------------------------------------------------
/*4、一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下求它在第10次落地时,共经过多少米?第10次反弹多高?
*/
#include<stdio.h>
void main()
{
int i; /*反弹次数*/
double high=100,Sup=0,Sdown=0; /*初始高度100,上弹距离Sup,下落距离Sdown*/
for(i=0;i<10;i++)
{
Sdown=Sdown+high; /*第一次下落,经过初始高度high=100米,循环*/
high/=2; /*弹起一半high/2=50米,循环*/
Sup=Sup+high; /*第一次上弹,经过初始高度一半high/2=50米,循环*/
}
printf("当球第十次落地时,共经过%lf米\n",Sdown+Sup-high); /*第十次落地,也就是经过了10次下落和9次上弹,因此取i=9时的Sup值
也就是由i=10时的Sup值减去第十次的上弹高度*/
printf("第十次能反弹%lf米高\n",high);
}
还有其他一些题就不贴上来了,有些要分清楚类型,不然求出来的答案就抠脚了。有些呢需要你数学底子好能想出公式来才要得,硬是要不得!
总之呢这些东西还是要先熟悉,多练习,再来自己写。思路,逻辑清晰永远是最重要的!