博客园作业
一,思维导图
二,对语法的认识
if-else语句
一般形式为:
if(表达式)
{
语句1;
}else{
语句2;
}
用于实现分支结构,根据表达式的值选择语句1或语句2中的一条执行。
if语句嵌套时,要注意if和else的配对问题。else总是与它前面最近的if配对。
注:在if语句中,判断条件必须用“{}”括起来。
switch语句
switch(表达式){
case常量表达式1:语句1;break;
case常量表达式2:语句2;break;
...
case常量表达式n:语句n;break;
default: 语句段n+1;break;
}
在switch语句中,表达式和常量表达式的值一般是整形或字符型
注:在case后的个常量表达式值不能相同,否则会出现错误;在case后允许有多个语句,可以不用“{}”括起来;default可以省略不用。
遇到的问题:在表达式后面错加分号
for语句
一般形式为:
for(表达式1; 表达式2; 表达式3){
循环体语句;
}
for语句中,用两个分号分隔三个表达式,但for的后面没有分号,因为for与其后的循环体语句合起来作为一个完整的语句。
while语句
一般形式为:
while(表达式){
循环体语句;
}
while语句中的表达式可以是任意合法的表达式,循环体语句只能是一条语句
do-while语句
一般表达式为:
do{
循环语句;
}while(表达式);
do-while语句先执行循环体,后判断循环条件。无论循环条件值如何,至少会循环一次循环体。
遇到的问题:把条件中的赋值和等号弄混。
break及continue
break语句 强制循环结束,break语句和if语句配合使用,即条件满足时,才会执行break跳出循环
continue语句 的作用是跳出循环体中continue后面的语句,继续下一次的循环。
区别:break除了可以终止循环外,还用于switch语句,而continue只能用于循环。
三,PTA截图分析
四,PTA代码分析
代码如下:
#include<stdio.h>
int main()
{
int num, sum = 0;
for(int i = 1;;i++){
scanf("%d", &num);
if(a<=0) break;
else if(num%2!=0)
{
sum+=num;
}
}
printf("%d",sum);
return 0;
}
代码思路:先理解什么是奇数;定义变量,给sum初始值,使用循环语句,如果是奇数,则加起来。
问题:把奇数和偶数概念混淆;在for语句的表达式后面加分号。
解决办法:正确理解奇数和偶数,不能在for语句的表达式后面加分号。
题目2
代码如下
#include<stdio.h>
int main(void)
{
int n;
double i=1;
double s=0;
scanf("%d",&n);
for(;n>0;n--)
{
s+=1/i;
i+=2;
}
printf("sum = %.6lf",s);
return 0;
}
代码思路:定义一个变量n,用for循环,在for循环中从左到右的形式循环,并且语句一只循环一次,若满足条件,则加起来,最后输出加起来的值。
问题:在printf中用来%.6d
解决方法:如果前面是int类型,后面printf和scanf里要用%d;如果前面是double型的,后面printf和sacan利用%lf.
题目3
代码如下
# include <stdio.h>
int main(void) {
int a, b;
char operate;
scanf("%d %c %d", &a, &operate, &b);
switch (operate) {
case '+' :
printf("%d", a+b); break;
case '-' :
printf("%d", a-b); break;
case '*' :
printf("%d", a*b); break;
case '/':
printf("%d", a/b); break;
case '%':
printf("%d", a%b); break;
default :
printf("ERROR");
}
return 0;
}
代码思路:定义变量啊a,b, 用switch语句来操作,然后用case"+,-,*,/,%“来输出相应的运算结果,若输入为非法符号,则输出"ERROR”
问题:没搞清题目,忘加分号。
解决方法:反复阅读题目,要有清晰的思路。