第一次博客作业
一.思维导图
二. 语法认识
1.if-else
if(条件){
执行语句
}
else{
执行语句
} //else与最近的if配对
遇到的问题: 条件中判断值是否相等如x==0编成x=0;执行语句最后一条忘加“ ;”。
解决 :做pta中if-else题到下意识写完便检查的程度
2.switch
switch(表达式){
case 值1:
//表达式的值和 值1匹配上了,执行代码;
break;
case 值2:
//表达式的值和 值2匹配上了,执行代码;
break;
case 值3:
//表达式的值和 值3匹配上了,执行代码;
break;
default:
//若表达式的值和以上的case后面的值都没有匹配上,就执行这里的代码。
break;
}
3.for
for (表达式1;表达式2;表达式3){
//表达式1对循环变量赋值,表达式2为循环条件,表达式3为改变循环变量的值。
//表达式可以不写,for(;表达式2;)=while(表达式2)
}
遇到的问题: 一开始会在表达式3后加“;”
解决:用for时多留心,做些题来熟练
4.while
while(表达式){
循环体语句
}
5.do-while
do{
循环体语句
}
while(表达式)//会先做一次循环再判断
6.break以及continue
for (表达式1;表达式2;表达式3){
if(表达式){
break;
}
}
for (表达式1;表达式2;表达式3){
if(表达式){
continue;
}
}
break直接跳出循环,不再循环体中其他语句。continue跳过后面语句进行下一轮循环
遇到的问题:做题时有时想不到用它
解决:将书上列子对比,找出使用的条件
三.PTA分数截图
2.3、2.4作业:
第三章作业:
4.1作业:
四.PTA代码分析
思路:题目关键主要在于判断输入的数学符号为何,根据所输进行四则运算。
当时不知用if如何判断字符,所以用switch分支。
#include <stdio.h>
int main()
{
int value1,value2;//定义变量
char op; //定义字符
scanf("%d %c %d",&value1,&op,&value2); //输入变量
switch(op){ //判断字符
case '%':printf("%d\n",value1 % value2);break; //输出结果
case '/':printf("%d\n",value1 / value2);break;
case '+': printf("%d\n", value1 + value2); break;
case '-': printf("%d\n", value1 - value2); break;
case '*': printf("%d\n", value1 * value2); break;
default: printf("ERROR\n"); break;
}
return 0;
}
错误:以为输入字符跟输入数字一样用%d;没在“ ”里的末尾加\n,答案错误。
收获:懂得char的使用,熟练了switch-case
思路:求阶乘和即算出一个阶乘便相加。定义一个求阶乘的函数,问题便成为将它们加起来。
之后用for循环循环所要加次数。
#include <stdio.h>
int fact (int x) { //定义求阶乘的函数
int i,sum1=1;
for (i=1;i<=x;i++){
sum1=i*sum1;
}
return sum1; //返回阶乘值
}
int main()
{
int number,sum2=0;
scanf("%d",&number);//输入循环的次数
int i;
for (i=1;i<=number;i++)
{
sum2=sum2+fact(i); //将阶乘相加
}
printf("%d",sum2); //输出结果
return 0;
}
错误:对求阶乘和无思路;函数忘记返回值,输入循环次数时漏输入&
收获:懂得调用函数,熟悉函数使用
思路:首先要有一个列表让人们选择项目,于是用printf先输出选项。输入次数有限制,于是在输入外套一个for循环,循环次数为5.
而输入次数大于5或输入0时结束输入,这便是输入0时也跳出循环,于是用if判断是否为0,是便用break跳出。
#include <stdio.h>
int main()
{
int x,i;
double price;//定义价格
printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n"); //输出选项
for (i=1;i<=5;i++){ //最多输入5次
scanf("%d",&x); //输入编号
if (x==1){
printf("price = 3.00\n");
}
else if(x==2){
price = 2.50;
}
else if(x==3){
price = 4.10;
}
else if(x==4){
price = 10.20;
}
else if(x==0){ //输入0时跳出循环
break;
}
else price = 0.00;
}
printf("price = %.2f\n",price); //输出价格
}
错误:忘记输出精确到两位小数;不知道输入0时如何跳出循环
收获:熟练了break的使用,知道如何连续输入数