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

经典 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

相关文章:

  • 【idea】工具使用报错记录
  • 0612_正则表达式
  • PostgreSQL 用户名大小写处理规则
  • 【力扣 简单 C】206. 反转链表
  • Java八股文——MySQL「SQL 基础篇」
  • STM32通用定时器TRC含义解析
  • Docker Docker Compose 一键安装
  • 国产USRP X410 PRO/PRO+:开启软件无线电的全频段多通道新时代
  • 白杨SEO:抖音DOU+、巨量广告、巨量千川、巨量本地推投流有什么区别与技巧?
  • 设计模式——责任链
  • Nuttx之mm_realloc
  • MPMA:Preference Manipulation Attack Against Model Context Protocol
  • Java学习笔记之:Vue中路由的基本使用
  • OpenCV 多边形绘制与填充
  • 【鸿蒙开发】组件动态创建
  • CKA考试知识点分享(11)---CRD
  • 在 Vue 3 中修改 el-select 组件接收的 prop 值
  • reactor模型
  • vue下的xlsx文件导出和导入的写法
  • java(JDBC)
  • 韶关做网站的/新闻最新热点
  • 一个网站开发流程/seo网络推广招聘
  • 中国空间站真实图片/正规推广赚佣金的平台
  • 高校网站开发/中国十大网站排名
  • k网站建设/查询网站备案信息
  • 家居网站建设全网营销/网络优化工程师为什么都说坑人