本周是C语言程序设计学习第五周,我代表19组负责本次博文。
一·首先回顾:
在前四周的学习过程中,我们新生小白从第一个C语言程序"Hello World!"开启了我们的编程之路~
先吐槽一下我的煎熬四周,我从第一次上C语言课时就发现有好几位新生大佬他们的pta已经达到2000+(当时的我甚至连pta都不太了解是什么),对于暑假没有直接开卷的结果就是四周及现在拼命补习。刷写一个个题目,敲打一个个代码,度过一个个难关......从基本认识程序框架,头文件,各种常量.变量和数据类型,学会分支结构和循环结构,并在上周chap6的回顾中有以下总结(大概就是我认为的重要的点(×)踩的坑(√):
1· " = " 与 "==" 的区别 :"="是指赋值,例如int a=1是指将1赋给a,而"=="是指等于,比如if条件句中如果a==1,则会进行在a==1下的操作;
2·整数与浮点数运算,尤其是除法运算(/)时,整数不会保留小数位;
3·既然提到浮点数,就说说double和float的区别:首先double是双精度型,占8个字节,64位;float是单精度型,占4个字节,32位;按精度来说double是float的二倍,精度更大,但是相应的内存消耗更多,运算速度更慢,所以在精度要求不大时尽量用float;
4·count++与++count(--类似):二者都是给count加 1,但是count++表达式是count原来的值,++count是count+以后的值;
5·分支结构:if-else,switch-case;
二·循环结构:
回顾当中应有循环结构的一大部分,因chap4是循环结构学习章节,故单独分块总结。
1·for循环:for(初始动作;条件;每轮的动作){ } *for循环中的每一个表达式都是可以省略的
2·while循环:while(条件){ } *while(1)是一个死循环,可以用break跳出
3·do-while循环:do{ }while(条件);
**建议:如果有固定次数,用for;如果必须执行一次,用do-while;其他情况用while
4·break:作用:可以使流程跳到循环之外(结束整个循环过程),接着执行循环体下面的语句。
注意:break语句只能用于循环语句和switch语句,不能单独使用;
continue:作用:并不是终止整个循环,只是提前结束本次循环,继续执行下次循环;
5·嵌套循环
例题:穷举问题--搬砖 :某工地需要搬运砖块,已知男人一人搬3
块,女人一人搬2
块,小孩两人搬1
块。如果想用n
人正好搬n
块砖,问有多少种搬法?
#include <stdio.h>
int main() {
int n,m,w,c; //定义搬砖数量以及男人女人小孩个数变量
scanf("%d",&n);
if(n<3){
printf("None"); //if判断是否满足有方案条件,n<3时不满足n人n个砖
}else{
for(m=0;m<=n/3;++m){ //对男人方案枚举
for(w=0;w<=n/2;++w){ //对女人方案枚举
for(c=0;c<=n;++c){ //对小孩方案枚举
if(m+w+c==n&&3*m+2*w+c/2.0==n){ //判断方案是否满足n人n砖
printf("men = %d, women = %d, child = %d\n",m,w,c); //输出方案
}
}
}
}
}
return 0;
}