day05:
一,while(条件表达式){ 1:确定需要重复执行的操作;2:确定循环终止的条件; (首先在循环开始前,定义一个循环控制变量并将其初始化)
语句; (确定约束条件)
... (在循环中改变循环控制变量的值,不断接近约束条件)
}
while,for注意: 注意作用域紊乱,如果想在循环体中定义变量,必须加{}。
dowhile: for:
do{ for( ; ; ) {
语句; ...;
... }
}while(条件表达式); 该循环体中的代码至少执行一次。例:买彩票。
二:计数器思想与累加思想:
计数器思想:利用循环,当每次条件满足时,就将计数器变量+1,使用场景:当要计算...中有...个...,就使用计数器思想。
累加思想:定义一个变量来记录每次循环执行的结果,下一次循环时在这个结果上进行计算。====>变体: 阶乘。
三:break:用在switch中,来结束switch语句;用在循环语句中结束当前的循环;break只能放在循环语句或switch语句中。
contiune:只能用在循环内部,作用:跳过当前循环后面的内容,继续下一次循环。(注意:当使用contiune时,务必保证将循环控制变量的修改放在contiune前面,否则会导致死循环。)
四:循环嵌套注意点:
1:当整个循环结束后,还想使用循环控制变量时,用while.
2:如果条件表达式不写,系统默认为真,死循环。
3:但凡遇到行与列则使用循环嵌套。
4:尖尖向下, 尖尖向上:外层循环控制行,内层循环控制列,内层寻呼俺的条件表达式随着外层循环控制变量的改变而改变。(%2d占两个字符的宽度。)
五:下面这道题,听第一遍,一片乱~~~~~~~~~第二遍还好。~~~ 系数的问题。后来才听懂。重要的不是这道题。重要的是思想。
day06:
一:函数:完成特定功能的代码块。
格式:返回值类型 函数名称(形参类型 形参名称 ,形参类型 形参名称 ,....)
{
语句;......( return 0;)
}
函数名称:(标识符)给函数一个有意义的名字。返回值类型:完成函数功能需要返回什么类型的数据给调用者。
形参列表:要完成这个函数功能,需要调用者传入什么样的辅助值。
return:1:返回数据(一个函数只能返回一个结果) 2:结束函数。
形式参数:定义在函数名称后小括号中的参数。实际参数:调用函数时在小括号中的参数。
写函数:1:确定函数功能。2;根据功能命名。3:确定形参列表(是否需要辅助值完成函数)。4:确定返回值类型。5:完成函数功能。
函数调用:只有调用才能够执行。
函数声明:拷贝函数头,到main前面。(函数头;)如果没有声明编译器会发生警告或错误。
函数实现:如果没有函数的实现,只有函数的声明,编译可以通过,但链接会报错。
#include作用:把所包含的文件拷贝到#include指令的所在位置,#include是一个编译预处理指令。源代码=> (预编译处理)=>编译=>链接=>运行。
使用场景:当包含系统的库文件时使用#include,快速找到需要的文件。若包含自己项目中的文件使用#include" " 。
多文件开发:1:每一个模块需要提供一个.h 和.c文件。.h用来存放文件的声明。.c用来存放函数的实现。
递归函数:自己调用自己的函数。
二:函数形参与实参注意点:基本数据类型作为函数参数传递时是值传递。值传递:仅仅把实参的值赋给了形参,改变形参的值并不会影响实参的值。(重要)
主调函数:调用其他函数的函数。被调函数:在其他函数中被调用。
函数的返回值:1 函数定义中声明是什么返回值类型 那么在主调函数中就必须使用相同类型的变量接收。(注意即可)
(重要) 2 **在c语言中并没有函数重载的概念。在c语言中区分函数只根据函数的名称。只要名称相同就是重复定义。无论形参是否相同。
三: 函数的调用过程:
(重要)在c语言中,是不允许函数嵌套的。在函数内部不可以再去定义其他函数。(但可以分开写:函数虽然不能够嵌套定义,但可以“嵌套调用”(在一个函数内部可以 调用其他函数,被调用的函数内部还可以调用其它的函数))