当前位置: 首页 > web >正文

经典 C 程序 100 例实战详解:从入门到精通的一周学习计划

第一天:基础编程思维入门(程序 1-5)

程序 1:三位数排列组合问题

题目:用 1、2、3、4 组成无重复数字的三位数,求所有可能的组合。
核心思路:三重循环遍历百位、十位、个位,通过条件判断过滤重复数字。

main() {int i,j,k;for(i=1;i<5;i++)  for(j=1;j<5;j++)    for(k=1;k<5;k++)if(i!=k&&i!=j&&j!=k)  printf("%d,%d,%d\n",i,j,k);
}

关键点:三重循环的嵌套逻辑,条件判断的去重逻辑。
扩展思考:若数字改为 0-9,如何修改代码?(提示:百位不能为 0)

程序 2:完全平方数求解

题目:寻找一个数,加 100 是完全平方数,再加 168 也是完全平方数。
核心思路:遍历 10 万以内的数,用平方根函数判断是否为整数。

#include "math.h"
main() {long int i,x,y;for(i=1;i<100000;i++) {x=sqrt(i+100);  y=sqrt(i+268);  if(x*x==i+100&&y*y==i+268)printf("%ld\n",i);}
}

关键点:利用数学库函数sqrt,通过平方验证完全平方数。
优化点:可缩小循环范围,比如从 1 开始到(y^2 - 268),减少计算量。

程序 3:三数排序

题目:输入三个数,按从小到大输出。
核心思路:两两比较交换,确保最小数在最前。

main() {int x,y,z,t;scanf("%d%d%d",&x,&y,&z);if(x>y) {t=x;x=y;y=t;}  if(x>z) {t=z;z=x;x=t;}  if(y>z) {t=y;y=z;z=t;}  printf("small to big: %d %d %d\n",x,y

http://www.xdnf.cn/news/13701.html

相关文章:

  • 【论文阅读32】预期寿命预测(2024)
  • 使用 MkDocs 构建并部署项目文档到 GitHub Pages
  • OpenCV基础知识
  • Cesium1.95中加载模型过多导致内存溢出的解决方案(服务端层面、代码层面、浏览器层面)
  • 大白话解释蓝牙的RPC机制
  • [vale os_3] 文件系统/VFS | 网络协议栈
  • 【React】SWR 和 React Query(TanStack Query)
  • 力扣HOT100之技巧:169. 多数元素
  • 【Zephyr 系列 21】OTA 升级与产测系统集成:远程配置、版本验证、自动回滚机制设计
  • 请问黑盒测试和白盒测试有哪些方法?
  • 力扣-198.打家劫舍
  • leetcode HOT100(49.字母异位词分组)
  • 怎样解决在ubuntu 22.04上QT: DataVisualization控件显示黑屏的问题
  • 触觉智能RK3576核心板工业应用之软硬件全国产化,成功适配开源鸿蒙OpenHarmony5.0
  • LangGraph--带记忆和工具的聊天机器人
  • Modbus TCP转DeviceNet网关连接ABB变频器配置案例
  • 破解关键领域软件测试“三重难题”:安全、复杂性、保密性
  • 电脑、手机长时间不关机可以吗
  • Rabbitmq后台无法登录问题解决
  • Genio 1200 Evaluation MT8395平台安装ubuntu
  • 全栈监控系统架构
  • 22、话题重名及解决方案
  • 销售预测的方法与模型(二)丨商品与库存分类——基于数据模型运营的本质和底层逻辑销售
  • Spring MVC 入门案例:从代码到原理的深度剖析
  • Docker 构建文件代码说明文档
  • qemu-kvm+virt-manager创建虚拟机设置桥接模式
  • 告别手动做PPT!4款AI工具实现自动化生成
  • Python—turtle绘图库使用方法
  • 【论文阅读笔记】高光反射实时渲染新突破:3D Gaussian Splatting with Deferred Reflection 技术解析
  • 技术专栏|LLaMA家族——模型架构