c语言作业【第三次】

本文分享编程中的实用技巧,如正确使用换行符、处理负数与浮点运算,以及避免常见错误,如忘记加分号、忽略地址传递等。通过具体例子讲解如何优化代码,提高编程效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一些坏习惯:

  1. 输出时要记得打上换行符 \n,该换行的地方不要忘了换
  2. 一些结果要看好是不是负数,或者在除的时候结果要是小数记得令被除数或者除数变成小数形式。放结果的定义时不要用int型用float或其他型
  3. 最后一个printf输完要记得加上分号“;”
  4. 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行的缘故。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值