*1. if(条件){语句
? 常见问题:1. “{}”的书写不完整。2. 对于else附属于哪个if不确定。3. 解决方法:在本地运行代码。
switch(表达式) {
case 常量表达式1:语句段1;break;
? …
case 常量表达式n:语句段n; break;
default: 语句段n+1; break;
}用法: 1.在不同的常量表达式中,有对应执行的表达式;判断条件后,执行对应的表达式。
? 2. 常见问题:1. 忽略对于break的使用,导致跳不出循环。
? 3.解决方法:注意break的使用。
for(表达式) {
循环体语句
} 用法:条件为三个表达式--for(表达式1;表达式2;表达式3):表达式1通常提供一个初始量;表达式2控制循环次 数;表达式3对于初始量进行变化。常见问题:对于循环次数的控制,初始计算量。3. 解决方法:本地运行代码。
while(表达式){
循环体语句
}:1. 用法:当while(表达式!=0)执行循环体语句;反之跳出循环体语句。2. 常见问题:忽略是否至少执行一次循环,与do while 弄混。3. 解决方法:思考特殊情况,即当初始量不满足时,jie是否符合题目要求
do{
循环体语句
}while(表达式):1. 用法:先循环一次,再判断while中的表达式是否非0,非0则继续执行循环体,为0则跳出循环。2. 常见问题:不能很好区分于while的用法。3. 解决方法:刷题。
break与continue:1.用法:break用于跳出循环;continue用于跳过continue之后的语句,进行下一次循环。2. 常见问题:不能灵活应用break和continue。
2.3与2.4作业
3章
4章
## 四.##pta分析
#include "stdio.h"
int main() {
int n,i,minimum,a=0;
minimum=a;//首先设a为最小值
scanf("%d",&n);
scanf("%d",&a);//输入第一个整数
for (i=1;i<n;i++){
scanf("%d",&a);//当n>1,再输入n-1个数
if(minimum>a){
minimum=a;
}//将输入的数与a对比,将较小值赋值给minimum
}
if(n==1){
minimum=a;
}//只有一个数时,即本身为最小值
printf("minimum = %d",minimum);
return 0;
}
感悟:1. 可以巧妙地运用赋值,可以省去对多余变量的定义。2. 可以利用循环控制输入次数
2.
#include "stdio.h"
int main() {
int anyyear,count=0;
scanf("%d",&anyyear);
if(anyyear>2100||anyyear<=2000){
printf("Invalid year!");
}//令anyyear为月份上限,看输入的月份是否为非法月份
else{for(int year=2001;year<=anyyear;year++){
if((year%4==0&&year%100!=0)||year%400==0){
printf("%d\n",year);
count++;
} }
}//对于取值范围内的月份判断是否为闰年,是则输出
if(count==0){
printf("None\n");
}//若不存在,则按题目要求输出
}
return 0;
}//感悟:应该注意审题,注意数据范围及相关条件
3.
#include "stdio.h"
int main() {
int letter=0,blank=0,digit=0,other=0;
char ch;//对变量进行定义
for(int i=1;i<=10;i++) {
ch=getchar();//每次读入一个字符
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
letter++;
}//判断是否在英文字母范围
else if(ch>='0'&&ch<='9'){
digit++;
}//判断是否在数字字符范围
else if(ch==' '||ch=='\n'){
blank++;
}//判断是否为空格键或回车键
else {
other++;
}//其余字符
}
printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
return 0;
}//感悟:可以运用逻辑字符确定范围
原文:https://www.cnblogs.com/tylk/p/11663805.html