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

【C习题】第二章 算法

1

思路:

  1. 先接收第一个输入数值,预设为当前最大值
  2. 循环读取剩下 9 个数字,每输入一个就和当前最大值对比
  3. 如果新数字更大,则更新最大值
  4. 循环结束之后输出保存好的最大值

方法1:数组存储全部 10 个数字

int main() { //先输入10个数,将第一个数设为最大值, // 再用第一个数跟后面的九个数比较,跟新最大值 int arr[10], i, max; for (i = 0; i < 10; i++) { scanf("%d", &arr[i]); } max = arr[0]; for (i = 1; i < 10; i++) { if (arr[i] > max) { max = arr[i]; //更新最大值 } } printf("max: %d\n", max); return 0; }

方法2:for循环

int main() { //先输入10个数,将第一个数设为最大值, // 再用第一个数跟后面的九个数比较,跟新最大值 int max, num, i; //先读取一个数作为最大值 scanf("%d", &max); //再读取后面的九个数 for (i = 1; i < 10; i++) { scanf("%d", &num); if (num > max) { max = num; } } printf("max: %d\n", max); return 0; }

求 1+2+3+…+100

思路

  • 循环方式:设置累加变量sum初始值为 0,逐个把 1‑100 的数值加到 sum;
  • 数学公式:等差数列求和公式,不需要循环,一步算出结果,执行速度最快。

for 循环

//int main() //{ // int i, sum; // sum = 0; //sum初始值为0 // for (i = 1; i <= 100; i++) // { // sum += i; // } // printf("%d\n", sum); // return 0; //}

while 循环

//int main() //{ // //方法2 while循环 // int i=1, sum; //变量要初始化 // sum = 0; // while (i <= 100) // { // sum += i; // i++; // } // printf("%d\n", sum); // return 0; //}

等差数列公式

公式:(首项 + 末项)* 项数 / 2

int main() { //方法3:等差数列公式 int sum; sum = (1 + 100) * 100 / 2; printf("%d\n", sum); return 0; }

判断一个数 n 能否同时被 3 和 5 整除

  • && 是逻辑与运算符,代表两个条件必须全部成立;
  • 一个整数同时被 3 和 5 整除 → 该数是 15 的倍数;
  • a%b 代表求 a 除以 b 之后的余数,余数等于 0 即代表可以整除。
int main() { int n; scanf("%d", &n); if (n % 15 == 0 ) { printf("%d能同时被3和5整除\n", n); } else { printf("%d不能同时被3和5整除\n", n); } return 0; }
//判断一个数 n 能否同时被 3 和 5 整除 //int main() //{ // int n; // scanf("%d", &n); // if (n % 3 == 0 && n % 5 == 0) // { // printf("%d能同时被3和5整除\n", n); // } // else // { // printf("%d不能同时被3和5整除\n", n); // } // // return 0; //}

输出 100~200 之间所有素数

素数(质数):大于 1,除 1 和它自身之外,不能被其他整数整除的数字。

优化技巧:

  • 只需循环试探至 sqrt(n),节省运算;
  • 100‑200 全部为大于 2 的整数,偶数一定不是素数,可以直接只遍历奇数。

思路:

  • flag 作为判断标记,一开始默认该数是素数;一旦发现可以被整除,就修改标记并跳出内层循环。
  • sqrt(n):若 n 存在大于其平方根的因数,则必然存在对应的小于平方根的因数,因此只需要检测到平方根即可。
//输出 100~200 之间所有素数 int main() { int n, i, flag; for (n = 100; n <= 200; n++) { flag = 1; for (i = 2; i <= sqrt(n); i++) { if (n % 2 == 0) { flag = 0; break; } } if (flag == 1) { printf("%d ", n); } } return 0; }
http://www.cnnetsun.cn/news/3925301.html

相关文章:

  • 镜像安全与合规:扫描漏洞、签名与供应链安全
  • DFRC系统Matlab仿真:波束成形与通信雷达融合技术
  • 非母语写作者英文论文被Turnitin误判为AI生成的原因及解决方案
  • 嵌入式开发笔记:HAL_Init启动逻辑深度解析——从复位到main的完整旅程
  • Flutter+鸿蒙全球导航方案:跨平台性能优化实践
  • Linux内核slab内存池设计与性能优化解析
  • 如何安全快速下载贵州省建设厅网站资源及相关长尾词深度解析
  • 用电负荷预测实战:从全国负荷15.57亿千瓦四创新高看温度敏感负荷建模
  • 基于音频特征与机器学习的歌曲力量感量化实战
  • Go 1.26新特性解析:性能优化与泛型增强
  • 3步解密网易云音乐:ncmdump让你的加密音乐自由播放
  • 英文大作业essay被Turnitin判定AIGC疑似与降AI教程
  • Markdown入门指南:轻量级标记语言的核心语法与应用
  • 山东大禹建设集团网站:探寻企业品牌数字化传播核心与长尾关键词布局实践
  • Claude Code高级技巧:5个Skills玩法重构开发工作流
  • 广度优先遍历(BFS)原理与最短路径实践指南
  • 闵行交大附近网站建设,为什么本地企业更需要懂温度的定制服务,而非流水线模板
  • Treblo开源AI音乐检测器:部署、测试与工程实践指南
  • PMP五大过程组解析与项目管理实战指南
  • 大众点评店铺信息爬虫实战:Python采集商圈美食评价与星级
  • 从创意到成片:专业剪辑全流程解析与实战技巧
  • 起点中文网Python爬虫实战:从零构建小说与月票排行榜爬取系统
  • 游戏赛季化系统技术解析:从规则引擎到阵营扩展的实现路径
  • Unity资源管理实战:从“跳一跳”项目构建健壮资源架构
  • GitHub汉化终极指南:3分钟让英文界面变中文的免费解决方案
  • GDT培训:提升精密制造图纸标准化与良品率
  • 郑州移动网站建设专业指南:从零基础到流量变现的实战策略
  • 解放双手的FGO全自动战斗助手:告别无限池刷到手抽筋的终极解决方案
  • Copilot 量化版上线当天,我的代码召回率掉了 12%——精度与成本的 5 层平衡术
  • 珠海本地企业必看,如何通过专业的珠海 电商 网站建设打破流量瓶颈实现业绩增长