一些坏习惯:
- 输出时要记得打上换行符 \n,该换行的地方不要忘了换
- 一些结果要看好是不是负数,或者在除的时候结果要是小数记得令被除数或者除数变成小数形式。放结果的定义时不要用int型用float或其他型
- 最后一个printf输完要记得加上分号“;”
- scanf给哪个数值传值一定要写地址!!写地址!!!!!靠为了这个检查了能有一个半小时的错误。。。。。。
例.快速找出一个数组中的最大数、第二大数。
题目挺简单,我认为不是让你用快速排序法的意思。
在网上看到别人的代码有讨论到一个问题,去重问题,比如有两个最大的数,像a[3] ={4 ,5, 5}这个数组,它的限制条件就是num[i]大于第二大和不为最大值时,a[i]就是第二大的。第27行括号内加上&& num[i] != max1 ,以防止类似情况发生。
例.通过编程实现,统计1~n有多少个9?(提示:n通过参数传入)
思路也很简单,主要是细节。第二遍做这个题同样的细节还是犯错了。
第20行,要将 i 的值赋给另一个变量,不能直接用 i 进行运算,不然程序一直在大的循环中反复(i永远不会大于n)
例.有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.
提示:用数组完成
题目不算很难,小细节比较容易错,调试了很久。
第27行若写count != 1退出,则 i 保存的是倒数第二个留下的数。此时若想要的到最后一个数,遍历一下谁的a [i]还是1即可。
第43行,不加的话若最后结果是第n个人的话,显示的会是0因为第39行的缘故。