一,排序


关键:设置缓冲区d来互换值,以达到大小顺序排列
二,求数组中最大值
![]()

关键:将b依次与各数进行比较,遇大的替换,遇小的不变,至最后,即为最大
三,分数正负求和


关键:a为分数累加结果,类型需是浮点类型;flag的1与-1转变可以解决正负交替
四,数数字
![]()

关键:1-100中,有9的只有在个位或者十位上,即模10等于9,或除以10等于9;
深入:如果改为有多少个数字内有9,则:

即排除99的两次计数,因为只要if成立,则不会继续else
五,最大公约数

求解的方式比较多,暴力穷举,辗转相除法,更相减损法,Stein算法,这里用辗转相除法

关键:辗转相除法的原理
六,打印100-200之间的素数
1.逐个数进行试除:

注意:每次循环得重置b值,以进行判断是否打印,否则,后果如下:

2.(优化)其实不用完全试除,用 [2,a/2] 即可:
更改:

3.(优化)其实只使用 [2,根号a] 即可:
运用根号的计算,需要用到sqrt函数,函数需要包含头文件math.h,即:

4.(优化)动脑,其实100-200间的素数都是奇数:
可更改:
C语言基础算法练习与优化
3405

被折叠的 条评论
为什么被折叠?



