博客作业
二. 对以下语法的认识
(1)if-else语句
形式: if(表达式) { 语句1; } else 语句2;
执行流程:首先判断关键词 if 后括号内条件表达式的值,如果该表达式的值表达为真,则执行 if 体,接着执行 if 体后的其他语句;否则,若该表达式的值表达为假,则不执行该 if 体,直接执行 if 体后的其他语句
可能出现错误:1:if(表达式)后面加上: 2:{}缺少
(2) switch语句
形式: switch(表达式) { case 常量表达式1:语句段1;break; case常量表达式2:语句段2;break; case常量表达式n:语句段n;break; default: 语句段n+1;break; }
执行流程:首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的相应语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的语句段,最后执行break语句,跳出switch语句。
可能出现错误:case后面用;而不是用:
(3) for语句
形式:
for(表达式1;表达式2;表达式3) { 循环体语句; }
执行流程:先计算表达式1,再判断表达式2,若值为“真”,则执行循环体语句,并接着计算表达式3,然后继续循环,若值为“假”,则结束循环,继续执行下一条语句。
可能出现错误:3个表达式中间用,而不是;
(4)while语句
形式: while(表达式) { 循环体语句; }
执行流程:当表达式的值为“真”时,循环执行,直到表达式的值为“假”,循环中止并执行while的下一条语句。
(5)do-while语句
形式: do { 循环体语句 }while(表达式)
执行流程:
可能出现错误:没有理解do-while先执行循环体再判断循环条件
(6)break以及continue语句
break:强制循环结束
continue:跳过循环体中continue后面的语句,继续下一次循环
三. pta分数截图
作业2.3, 2.4
第3章作业
4.1作业
四. pta代码分析
思路: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进行判断,输出对应的结果
错误原因:没有考虑到浮点误差
收获:fabs时浮点数的绝对值
(3)
思路:先用if语句将n=0的情况排除掉,再用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; }
错误原因:没有考虑到最后一次没有弹起,所以应该减去最后第n次的高度
收获:对题目进行仔细分析,得出计算方式