C语言第四章
二十一.循环1.数数几位数程序读入一个4位以下含4位的正整数输出这个整数的位数输入352 输出3计算机通过数的范围来决定位数2.程序实现int x; int n1; scanf(%d,x); if(x999) n4; else if(x99) n3; else if(x9) n2; printf(%d,n);题目明确4位数及以下的正整数因为从高处往下判断所以不需要判断上限反过来不行从高往低判断反之如果都用ifint x; int n1; scanf(%d,x); if(x999){ n4; } if(x99){ n3; } if(x9){ n2; } if(x0){ n1; } printf(%d,n);这样写结果都是13.任意范围的正整数怎么办用判断位数的方法在一定范围内可以做换一个方法想给一个极大的正整数让计算机数数怎样让计算机数数eg三位逆序的题352%10052123456789%10000000023456789但是如何得到100000000如果换一下从右边开始划123456789/1012345678去掉最右边的数不断的划直到没有数可以划0在这个过程中计数计数的结果就是几位数int x; int n0; scanf(%d,x); n; x/10; if(x0){ n; x/10; if(x0){ n; x/10; if ... } } printf(%d\n,n);还是没完没了需要引入一种手段4.whileint x; int n0; scanf(%d,x); n; x/10; while (x0){ n; x/10; } printf(%d\n,n);在4行做一个断点调试程序一直在while循环直到满足x0结束刚才自己用了很大的数试失败因为计算机可以表达的最大的整数是有范围的二十二.while循环和if1.while和if的区别while(x0){x/10;n;}if(x0){x/10;n;}while是反复做if是一次性做循环体内要有能改变条件的机会int x; int n0; scanf(%d,x); n; x/10; while (x0){ n; } printf(%d\n,n);调试发现程序一直在while循环因为缺少x/10;也就是循环体内缺少能改变条件的机会pat系统会判定超时2.while循环如果把while翻译成当那么while循环的意思是当条件满足时不断地重复循环体内的语句循环执行之前判断是否继续循环所以可能循环一次也没有被执行条件成立是循环继续的条件3.验证去掉n; x/10;会怎么样手动验证x3523530n0123测试程序常使用边界数据如有效范围两端的数据、特殊的倍数等个位数、10、0、负数0和负数解决不了目前两个方法解决0加入n; x/10;或加入if-elseint x; int n0; scanf(%d,x); if(x0){ while (x0){ n; x/10; } }else{ n1; } printf(%d\n,n);4.其他调试的方法printf在程序中间插入printfint x; int n0; scanf(%d,x); x352; while (x0){ n; x/10; printf(x%d,n%d\n,x,n); } printf(%d\n,n);二十三.do-while循环1.数位数的算法用户输入x初始化n为0xx/10去掉个位n如果x0回到3否则n就是结果int x; int n0; scanf(%d,x); n; x/10; while (x0){ n; x/10; } printf(%d\n,n);如果去掉了n; x/10;则如果x0回到3是在xx/10去掉个位中运行的能不能做完了再看条件2.do-while循环do{循环体语句}while(循环条件)//记住分号在进入循环的时候不做检查而是在执行完一轮循环体的代码之后再来检查循环的条件是否满足如果满足则继续下一轮循环不满足则结束循环3.两种循环左边do-while右边whiledo-while循环在循环体执行结束的时候才来判断条件无论如何循环都会执行至少一遍然后判断条件和while循环相同的是条件满足时执行循环条件不满足时结束循环int x; scanf(%d,x); int n0; do{ x/10; n; }while(x0);//注意分号 printf(%d\n,n);二十四.猜数1.猜数游戏让计算机来想一个数然后让用户来猜用户每输入一个数就告诉它是大了还是小了直到用户猜中为止最后还要告诉用户它猜了多少次因为需要不断重复让用户猜所以需要用到循环在实际写出程序之前我们可以先用文字描述程序的思路核心重点是循环的条件人们往往会考虑循环终止的条件思路计算机随机想一个数记在变量number里一个负责计次数的变量count初始化为0让用户输入一个数字acount递增加一判断a和number的大小关系如果a大就输出大如果a小就输出小如果a和number是不相等的无论大还是小程序回到第3步否则程序输出猜中和次数然后结束循环的条件是a和number不相等srand(time(0)); int number rand()%1001; int count 0; int a 0; printf(我已经想好了一个1到100之间的数。); do { printf(请猜这个1到100之间数); scanf(%d, a); count; if (a number) { printf(你猜的数大了。); } else if (a number) { printf(你猜的数小了。); } } while (a ! number); printf(太好了你用了%d次就猜到了答案。\n, count);2.随机数每次召唤rand()就得到一个随机的整数#include stdio.h #include stdlib.h//23因为67写的 #include time.h int main() { srand(time(0));//先不管 int a rand(); printf(%d\n, a); return 0; }3.%100x%n的结果是[0,n-1]的一个整数srand(time(0)); int a rand(); a1234; printf(%d\n, a%100);结果是34这样得到一个获得100内随机数的方法7次为什么可以猜出来每次一半一半猜ovo二十五.算平均数1.算平均数让用户输入一系列的正整数最后输入-1为止表示输入结束然后程序计算出这些数字的平均数输出输入的数字的个数和平均数变量-算法-流程图-程序2.变量一个可以记录整数的变量平均数计算每读到一个数加到累加的变量中当全部数据读完再拿这个变量/读到的个数所以还需要两个变量3.算法sum累加的变量和count个数初始化0scanf读入number如果number-1则将number加入sumcount1再回去如果number1则计算并输出sum/count用浮点数因为真正结果可能带小数点4.流程图5.代码int number; int sum; int count; do{ scanf(%d,number); if(number!-1){ sumnumber; count; } }while(number!-1); printf(%f,1.0*sum/count);但是do-while和if有两个语句判断number!-1;怎样修改int number; int sum; int count; scanf(%d,number); while(number!-1){ sumnumber; count; scanf(%d,number);//while循环里面没有改变number!-1的条件加一个scanf } printf(%f,1.0*sum/count);二十六.整数求逆1.整数的分解一个整数是由1至多位数字组成的如何分解出整数的各个位上的·数字然后加以计算整数%10得到个位数整数/10去掉个位数再对步骤3的结果%10得到原整数的十位数…类推2.数的逆序输入一个正整数输出逆序的数结尾的0的处理3.代码有两种情况例如输入700得到7或007得到7int x; //scanf(%d,x); x12345; int digit; int ret0; while(x0){ digitx%10; //printf(%d\n,digit); retret*10digit; printf(x%d,digit%d,ret%d\n,x,digit,ret); x/10; } printf(%d,ret);得到007int x; //scanf(%d,x); x700; int digit; int ret0; while(x0){ digitx%10; printf(%d,digit); retret*10digit; //printf(x%d,digit%d,ret%d\n,x,digit,ret); x/10; } //printf(%d,ret);

相关新闻

dxwrapper 经典游戏兼容性修复完整指南:三个文件,让老游戏在 Windows 10/11 上满血复活

dxwrapper 经典游戏兼容性修复完整指南:三个文件,让老游戏在 Windows 10/11 上满血复活

dxwrapper 经典游戏兼容性修复完整指南:三个文件,让老游戏在 Windows 10/11 上满血复活 【免费下载链接】dxwrapper Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libr…

2026/10/12 7:09:23 阅读更多 →
AI可以帮我练习自我介绍吗-30秒AI自我介绍打磨法从模板到定制

AI可以帮我练习自我介绍吗-30秒AI自我介绍打磨法从模板到定制

文章目录一、为什么自我介绍是面试的"第一道生死线"?1.1 30秒法则:你不信但面试官真的在数1.2 90%的自我介绍都在踩这三个坑1.3 AI能帮你在自我介绍上做什么?二、三层设计法:AI如何把"念简历"变成"讲故事…

2026/10/12 7:10:00 阅读更多 →
告别手动对透视:fSpy-Blender插件让照片与3D相机一次对齐

告别手动对透视:fSpy-Blender插件让照片与3D相机一次对齐

告别手动对透视:fSpy-Blender插件让照片与3D相机一次对齐 【免费下载链接】fSpy-Blender Official fSpy importer for Blender 项目地址: https://gitcode.com/gh_mirrors/fs/fSpy-Blender 在Blender里手动对齐一张照片的透视,通常是这样的&#…

2026/10/10 17:46:21 阅读更多 →

最新新闻

DMAD开源:MiniMax-H3蒸馏至4步,一次生成视频与原生音频

DMAD开源:MiniMax-H3蒸馏至4步,一次生成视频与原生音频

1. 项目缘起与核心思路拆解1.1 这个标题到底在说什么先把标题拆开看。“DMAD 开源”是项目动作,“把 MiniMax-H3 蒸馏到 4 步”是技术路径,“一次生成视频与原生音频”是最终效果。三个短句连起来,讲的就是一件事:原本需要几十步迭…

2026/10/12 7:09:09 阅读更多 →
Vibe-Coding实战指南:AI编程助手工作流、技巧与避坑手册

Vibe-Coding实战指南:AI编程助手工作流、技巧与避坑手册

1. 先搞清楚“Vibe-Coding”到底在说什么“Vibe-Coding”这个词最近在开发者圈子里出现的频率越来越高,但很多人第一次听到的时候都是一头雾水。字面翻译过来大概是“氛围编程”或者“感觉编程”,听起来像是某种玄学。实际上,它描述的是一种以…

2026/10/12 7:09:09 阅读更多 →
C++任务编排系统:拓扑排序+动态规划求解华为OD真题

C++任务编排系统:拓扑排序+动态规划求解华为OD真题

最近刷到华为OD机试C卷的真题回忆,看到《任务编排系统》这个题目名,我第一反应是“完了,系统设计题?”实际上这种带业务背景的题最唬人,剥掉外壳之后就是一道非常经典的图论题:有依赖关系的任务调度。华为O…

2026/10/12 7:09:09 阅读更多 →
pstack命令实战:Linux线程死锁与假死排查指南

pstack命令实战:Linux线程死锁与假死排查指南

你有没有遇到过这种情况:线上服务进程明明还活着,端口也通,请求却全部卡住不返回。CPU 不高,日志没有异常,内存也不见涨,就像一个人睁着眼睛但已经没有反应了。我第一次处理这种“假死”问题时,…

2026/10/12 7:09:09 阅读更多 →
数据库原理题库结构化:Python+SQLite实现自动组卷与错题分析

数据库原理题库结构化:Python+SQLite实现自动组卷与错题分析

简介:面向数据库原理课程复习与期末考试,题库将抽象概念转化为填空自测与要点解析,系统覆盖数据库系统组成、数据模型、实体联系、事务特性、并发控制与封锁、完整性约束、安全性授权、三级模式、范式规范化与数据库恢复等核心章节&#xff0…

2026/10/12 7:09:09 阅读更多 →
DeepSeek开源算力地基:FlashMLA与DeepEP如何加速国产大模型?

DeepSeek开源算力地基:FlashMLA与DeepEP如何加速国产大模型?

先说明一下我的第一反应:看到“致敬,DeepSeek 最新开源的不是模型,是国产算力的地基”这个标题,我以为是又一个大模型权重开源了。结果点进仓库一看,里面没有模型文件,躺着的全是 FlashMLA、DeepEP、DeepGE…

2026/10/12 7:08:08 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →