一.思维导图.
二.c语言语法.
1.if else.
if (表达式){ 语句1; } else{ 语句2; }
else与其上面最接近的if相关联。
表达式的值为"真",则执行语句1;如果表达式的值为"假",则执行语句2.
2.switch.
switch(表达式){ case 常量表达式1;语句段1;break; case 常量表达式2;语句段2;break; ... case 常量表达式n;语句段n;break; default: 语句段n+1;break; }
switch语句中的break语句不是每个case语句后都要有
3.for.
for(表达式1;表达式2;表达式3){ 循环体语句;}
for的后面没有分号,因为for与其后面的循环体语句合起来作为完整的语句。
4.while.
while(表达式){ 循环体语句;}
while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真即可继续循环。
5.do while.
do { 循环体语句 }while(循环条件);
先执行一次循环语句,再判断循环条件.
所以无论是否满足循环条件,循环至少执行一次。
6.break及continue.
for (表达式1;表达式2;表达式3) { if(表达式){ break; }//跳出循环。 } for (表达式1;表达式2;表达式3) { if(表达式) { continue; }//直接进行下一个循环。 }
continue语句使用后,本次循环直接结束,不再执行continue之后的语句,直接进行下一轮循环。break语句是跳出当前执行行的语句。
三.pta分数截图。
四.pta代码分析。
1.求奇数和。
#include <stdio.h> int main(){ int sum=0, n=-1; while(1){ scanf("%d", &n); if(n<=0){ break; } if(n%2==1){ sum += n; } } printf("%d\n", sum); return 0; }
思路:定义变量sum,n,sum表示总和。然后输入n,然后计算,最后按格式输出。
错误原因:没有注意中文和英文的输入。
收获:懂了怎么计算一系列正整数中奇数的和。
2.找出最小值。
#include<stdio.h> int main() { int n,i,min,l; scanf("%d %d",&n,&l); min=l; for(i=1;i<n;i++) { scanf("%d",&l); if(min>l) min=l; } printf("min = %d",min); return 0; }
思路:定义变量n,i,min,l,min代表最小值,然后输入n,l,然后通过一系列运算,最后输出min的值。
收获:学会了赋值运算。
3.比较大小。
#include<stdio.h> int main(void) { int a,b,c; scanf("%d %d %d",&a,&b,&c); if(a>b){ if(b>c){ printf("%d->%d->%d\n",c,b,a); }else{ if(a>c){ printf("%d->%d->%d\n",b,c,a); }else{ printf("%d->%d->%d\n",b,a,c); } } }else{ if(a>c){ printf("%d->%d->%d\n",c,a,b); }else{ if(b>c){ printf("%d->%d->%d\n",a,c,b); }else{ printf("%d->%d->%d\n",a,b,c); } } } return 0; }
思路:读题后决定用if else为核心,然后通过运算比较出三个数的大小,最后按格式输出。
错误原因:没有注意题目中的以空格分隔。
收获:要仔细阅读题目,注意题目给出的要求。