一.
二. (1)
if-else语句 形式: if(表达式) { 语句1; } else 语句2;
可能出现错误:1:if(表达式)后面加上: 2:{}缺少
(2) switch语句
形式: switch(表达式) { case 常量表达式1:语句段1;break; case常量表达式2:语句段2;break; case常量表达式n:语句段n;break; default: 语句段n+1;break; }
可能出现错误:case后面用;而不是用:
(3) for语句
形式:
for(表达式1;表达式2;表达式3) { 循环体语句; }
可能出现错误:3个表达式中间用,而不是;
(
4)while语句 形式: while(表达式) { 循环体语句; }
(5)do-while语句 形式: do { 循环体语句 }while(表达式)
可能出现错误:没有理解do-while先执行循环体再判断循环条件
(6)break以及continue语句
break:强制循环结束
continue:跳过循环体中continue后面的语句,继续下一次循环
三.作业2.3, 2.4
第3章作业
4.1作业
四.(1)
思路:if-else判断大小
while控制区间进行循环计算
#include <stdio.h> int main() { int d,b,a; double celsius=0; scanf("%d %d",&a,&b); if(a>b) { printf("Invalid."); } else { printf("fahr celsius\n"); d=b-a; while(d>=0) { celsius=5.0*(a-32)/9; printf("%d%6.1f\n",a,celsius); a=a+2; d=b-a; } } return 0; }
错误原因:没有注意到题目的要求(占据6字符,以及右对齐),导致答案错误
收获:仔细分析题目,并且学到了%+数字控制字符宽度
(2)
思路:使用if-else进行判断
#include <stdio.h>
int main()
{
int a, b;
double s;
scanf("%d %d", &a, &b);
s = 100*fabs(a-b)/b;
if (s <10)
{
printf("OK");
}
else if (s>=50)
{
printf("Exceed %.0lf%%. License Revoked", s);
}
else {
printf("Exceed %.0lf%%. Ticket 200", s);
}
return 0;
}
错位原因:没有考虑到浮点误差
收获:fabs时浮点数的绝对值
(3)
思路:用for循环进行计算
#include<stdio.h> int main() { double s=0,a=0,m; int i, n; scanf("%lf %d", &m, &n); s = m; if(n==0){ s=0; } for (i = 1;i <= n;i++) { a = m / 2.0; m = a; s = s + 2*a; } printf("%.1f %.1f", s-a-a, a); return 0; }
错误原因:没有考虑到最后一次没有弹起
收获:对题目进行仔细分析,得出计算方式