第一次博客作业
二. 写出自己对以下语法的认识
1.if-else语句:
If(条件){ 语句1; } else { 语句2; }
用法:判断条件,如成立则运行语句1,如不成立则运行语句2。
常见问题:对于else从属于哪个if不明确,导致代码书写错误等。解决方案:先在编译器上运行发现错误后改正。
2.switch语句:
switch(表达式) { case 常量表达式1:语句段1;break; … case 常量表达式n:语句段n; break; default: 语句段n+1; break; }
用法:根据表达式来在常量表达式中寻找相同,然后执行相应case后的语句段,最后在break跳出。
常见问题:忽略break的用法而导致代码运行异常。解决方案:书写完代码后检查break的书写,查看是否有异。
3.for语句:
for(语句1;条件;语句2) { 循环体语句 }
用法:语句1通常赋值一个初始量,利用初始量进行条件的判断,如成立则运行循环体语句,跳出循环后再次进行条件判断,接着进行语句2,然后再一次进去循环体语句直到条件不成立。
常见问题:语句1与条件设立不正确,导致循环次数不够达不到题目要求等。解决方案:可以自行进行演算。
4.while语句:
while(条件){ 循环体语句 }
用法:进行条件的判断,如成立则进行循环体语句,直到条件不成立则退出循环。
常见问题:对循环次数的不理解导致代码错误。解决方案:认真审题,思考特殊情况时的条件。
5.do-while语句:
do{ 循环体语句 }while(条件)
用法:与while类似,但是要先执行一次循环体语句,在进行判断。
常见为题:与while类似但不相同,容易混淆。解决方案:多运行while与do-while语句,发现不同。
6.break与continue语句:
switch(整形表达式) { case 常量表达式1: 语句1;break; … case 常量表达式n: 语句n;break; default: 语句n+1; } for(语句1; 语句2; 语句3) { 语句1; continue; 语句2; }
用法:break用来跳出最近的一整个循环,而continue则是跳过其后续的循环语句。
常见问题:不能灵活运用break和continue,混淆它们的用法。解决方案:在本地编译器自行运行,发现规律。
三. pta分数截图
2.3,2.4作业
第三章
4.1作业
四. pta代码分析
1.
#include<stdio.h> int main() { int n,m; double sum=0,i=1; scanf("%d",&n);//输入一个正整数n。 for(m=1;m<=n;m++,i=i+2){//进行一个for循环来计算奇数分之一的和。 sum=sum+1/i; } printf("sum = %.6lf",sum);//最后输出sum,保存6位小数。 return 0; }
思路在代码注释中。
感悟:灵活运用for循环可以轻松完成很多代码的书写。
2.
#include<stdio.h> int main() { int letter=0,digit=0,blank=0,other=0;//赋值所有的字符数量为0。 int i; char ch; for(i=0;i<=9;i++){//用一个for循环来输入10个字符。 scanf("%c",&ch);//输入一个字符。 if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) //判断输入的字符,假如大于'a'小于'z'则是英文字母。 letter++;//英文字母数量加一。 else if(ch>='0'&&ch<='9') //判断输入的字符,假如大于'0'小于'9'则是数字字符。 digit++;//数字字符数量加一。 else if(ch==' '||ch=='\n') //判断输入的字符是否为空格和回车。 blank++;//空格回车数量加一。 else other++;//其他字符数量加一。 } scanf("%c",&ch);//再次输入一个字符进入for循环。 printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);//输出各个字符数量。 return 0; }
思路在代码注释中。
感悟:可以使用字符的范围来确定字符属于哪类。
3.
#include <stdio.h> int main(void) { int temp, sum = 0; scanf("%d", &temp);//输入一个整数。 while (temp > 0) {//判断输入的整数是否大于0,如果大于则进行循环,小于则输入结束。 if (temp % 2 == 1) {//判断输入的数是否为奇数。 sum += temp;//如果输入的是为奇数,则进行相加。 } scanf("%d", &temp);//再次输入一个数进行循环。 } printf("%d\n", sum);//最后输出计算的奇数和。 return 0; }
思路在代码注释中。
感悟:while里运用if判断语句可以实现很多题目要求。