C语言常用算法模块的总结
一、最大值,最小值问题 教材page13/1.6、page36/2.4(2)、(3)、page98例5.1、5.2
二、连乘连加问题 page113、114、115 page129/6.3 page129/6.4、6.5
三、闰年算法 page17、 page107
四、连续小数相加减 page18、 page124
五、素数、整除问题 page18、 page124、 page126、 page127
六、大小写字母转换、密码问题 page51、 page87、 page89/4.9、 page104、 page67、 page128
七、格式化字符提醒 起于page 76
八、三角形面积问题 page86
九、一元二次方程 page87、 page89/4.8、 page108
十、分段一元函数 page100、 page110、 page111/5.5、5.6
十一、位运算 page112/5.7、 page129/6.2、6.3
十二、公约数公倍数 page129/6.1
十三、迭代法、二分法 130/6.11-13
C语言常用算法模块的总结
一、最大值,最小值问题
教材page13/1.6、page36/2.4(2)、(3)、page98例5.1、5.2
主要思想:替换+中转 关联习语: if句
int a,b,c,max; 多余的一个max是承载中转的容器
scanf(“%d,%d,%d”,&a,&b,&c);
max=a; 定初值
if(max
Max=b; 分别取a、 b、c相互比较,由于只需输
if(max
Max=c; 储在max中即可
printf(“……”);
如果需要依次输出所给的数值,则须在比较大小之后进行替换赋值
int a,b,t;
scanf(“%d,%d”,&a,&b)
if(a>b)
{ 此步的依次赋值体现了赋值运算自右向左的结合次序
t=a; 先将a的值赋给t,此时a的值空出
a=b; 将b的值赋给a,b值空出
b=t; 将t中存储的a的值赋给b,此时t仍回复空值
} 若混淆其中赋值规律则产生混乱
printf(“……”);
二、连乘连加问题
page113、114、115 page129/6.3 page129/6.4、6.5
主要思想:容器+循环 关联习语:while(do……while)、for、(goto)
int i,sum=0; 循环第一步,定初值,sum可视作是承载运算结果的容器,初为空
i=1;
while(i<=100) 构设循环条件,注意必须是有限循环,否则程序无终止
{
sum=sum+I; 循环第二步,累计结果
i++; 循环第三步,循环量自增。这两步保证循环为续,皆不可少
}
printf(“……”);
除此之外,用for句型、do……while也可就此推出,虽形式不同,但主要三个部分都不可少,而且过程中的分号和大括号划分不同的意群,因此必须注意。
三、闰年算法
page107
主要思想: 自上而下细化 关联习语:if、else判断句、
if(year%4==0) “==”才是等于号,而“=”号是赋值号
{
if(year%100==0) 分层次的语句
{ 每一层的大括号都要完美配对
if(year%400==0)
Leap=1;
else leap=0;
}
else leap=1;
}
else