数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字

  分析:

        我们知道 1-100的整数 i 中,9会出现在十位和个位上,数9出现的次数可以通过以下来实现:

  • 个位是9   // i % 10得到整数 i 个位上的数
  • 十位是9   // i / 10得到整数 i 除了个位数的数字

这也是做这道题之后,我们需要掌握的。思考, 1234想到得到4、12和123如何实现?(先自行思考一下)

1234 % 10    //得到4

1234 / 100      //得到12

1234 / 10   //得到123

 代码实现:

#include<stdio.h>
int main()int count = 0;int i = 0;for (i = 1; i <= 100; i++){if (i % 10 == 9)//个位数是9{count++;printf("%d ", i);}if (i / 10 == 9)//十位数是9{count++;printf("%d ", i);}}printf("\n");printf("%d\n", count);return 0;
}

从这里可以看出,99是算了两次的,所以数字9的出现次数是20 。那下例打印出19,是怎么回事呢?

易错点

#include<stdio.h>
int main()int count = 0;int i = 0;for (i = 1; i <= 100; i++){if (i % 10 == 9)//个位数是9{count++;printf("%d ", i);}else if (i / 10 == 9)//十位数是9{count++;printf("%d ", i);}}printf("\n");printf("%d\n", count);return 0;
}

        从运行结果看出,99少算了一次。对比前一个代码,发现差别仅有分支结构(if-if、if-else if)。

  • if-if条件只要满足就会都会执行if语句;
  • if-else只会执行一个语句,要么是if语句,要么是else语句 。

而这里99首先满足  i % 10 == 9  的判断条件,所以执行完相应语句后,就到for循环的调整语句(i++),没有进入else语句。


期待

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/600647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

filecoin通过filutils 区块浏览器获取历史收益数据

filecoin 历史收益数据 每天每T平均收益 导出历史每日收益为文档 filutils 区块浏览器 导出历史每日收益为文档 #!/bin/bashfor i in {1..10} doecho $iresult$(curl --location --request POST https://api.filutils.com/api/v2/powerreward \--header User-Agent: Apifox/1.…

黑马程序员SpringBoot2-运维实用篇

视频连接&#xff1a;运维实用篇-51-工程打包与运行_哔哩哔哩_bilibili 打包与运行 程序打包与运行&#xff08;Windows&#xff09; 可执行jar包目录结构 左上角的结构是没有插件打包后的结构&#xff0c;左下是安装插件后的结构。 jar包描述文件&#xff08;MANIFEST.MF&a…

2023 波卡年度报告选读:Polkadot SDK 与开发者社区

原文&#xff1a;https://dashboards.data.paritytech.io/reports/2023/index.html#section6 编译&#xff1a;OneBlock 编者注&#xff1a;Parity 数据团队发布的 2023 年 Polkadot 年度数据报告&#xff0c;对推动生态系统的关键数据进行了深入分析。报告全文较长&#xff…

[C#]使用OpenCvSharp实现区域文字提取

【官方框架地址】 github.com/shimat/opencvsharp 【算法介绍】 采用opencv算法实现文字区域提取&#xff0c;步骤如下&#xff1a; &#xff08;1&#xff09;形态学操作 &#xff08;2&#xff09;查找轮廓 &#xff08;3&#xff09;筛选那些面积小的 &#xff08;4&#…

01.从头梳理--应用软件全生命周期中可用工具(Java方向)

在管理软件的全生命周期中&#xff0c;有很多辅助工具可以帮助开发和管理Java项目。以下是一些主要的工具和框架&#xff0c;这些工具主要在需求收集、设计、开发、测试、部署和运营维护等阶段发挥作用&#xff1a; 1.需求收集工具 JIRA:&#xff1a;一个灵活的问题和项目跟踪…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)主线程给子线程添加任务以及如何处理该任务

在看此篇文章&#xff0c;建议先看我的往期文章&#xff1a; 基于多反应堆的高并发服务器【C/C/Reactor】&#xff08;中&#xff09;在EventLoop的任务队列中添加新任务-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135346492?spm1001.2014.3001.5501一…

Raft Lab3A

Lab3 需要在 Raft 层上实现一个 fault-tolerant key-value service&#xff0c;满足强一致性&#xff0c;也就是线性一致性 (Linearizable Consistency)。线性一致性保证整个系统看起来好像只有一个副本&#xff0c;其中所有的操作都是原子性的。简单地说&#xff0c;线性一致性…

什么是发作性睡病?

发作性睡病是一种罕见的神经系统疾病&#xff0c;主要症状表现为无法控制的白天嗜睡。此病在全球范围内的发病率约为0.02-0.18%&#xff0c;通常在儿童或青少年时期发病。 首先&#xff0c;我们来了解一下发作性睡病的典型症状。患者在清醒状态下&#xff0c;如上课、开会或开…

swift ——多行文字前面内容省略

首先来说一说ios中的 lineBreakModelineBreakMode : 设置文字过长时的显示截断样式 可选值如下 byWordWrapping &#xff1a; 以单词为单位换行&#xff0c;以单词为单位截断。byCharWrapping &#xff1a;以字符为单位换行&#xff0c;以字符为单位截断。byClipping &#x…

C+语言的新特性

总是期待学习别人做好了的东西&#xff0c;是否也是一种懒惰呢&#xff1f; C语言是一门想象中的语言&#xff0c;它介于C和C之间。新的研究表明&#xff0c;C语言不支持某些特性&#xff0c;而C过于复杂。于是&#xff0c;便有了C语言&#xff0c;它的新特性如下&#xff1a; …

【Proteus仿真】【Arduino单片机】太阳能追光系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用LCD1602液晶、光敏传感器、ADC模块、按键模块、28BYJ48步进电机驱动模块、直流电机模块等。 主要功能&#xff1a; 系统运行后&#xff0c;L…

QGIS009:QGIS常用插件、GDAL和GRASS GIS常用工具

摘要:本文介绍QGIS支持的数据格式、QGIS常用插件以及GDAL和GRASS GIS模块常用工具。 一、QGIS支持的数据格式 1、矢量数据格式 1.1文件格式 ESRI Shapefile(SHP):ESRI公司开发的一种空间矢量数据文件格式,是最为常用的矢量数据格式之一,支持点、线、面等要素类型。GeoJ…

vue 的实例生命周期

Vue.js 的实例生命周期指的是 Vue 实例在创建、更新和销毁过程中的一系列事件和钩子函数&#xff0c;允许在不同阶段执行自定义操作。Vue 实例的生命周期可以分为以下阶段&#xff1a; 创建&#xff08;Creation&#xff09;&#xff1a; beforeCreate&#xff1a;在实例初始化…

DS|哈夫曼编码及应用

题目一&#xff1a;DS树 -- 赫夫曼树的构建与编码 题目描述&#xff1a; 给定n个权值&#xff0c;根据这些权值构造huffman树&#xff0c;并进行huffman编码 注意数组访问是从位置1开始 要求&#xff1a;赫夫曼的构建中&#xff0c;默认左孩子权值不大于右孩子权值 输入要…

淘宝商品详情API接口(item_get-获得淘宝商品详情)主图,属性,sku,价格,搜索商品列表

淘宝开放平台提供了API接口&#xff0c;允许开发者获取淘宝商品的相关信息。为了获取商品详情&#xff0c;您可以使用 item_get API接口。以下是如何使用此API接口来获取商品的主图、属性、SKU、价格以及搜索商品列表的简要说明&#xff1a; 公共参数 名称类型必须描述keyStr…

PromptCast:基于提示学习的时序预测模型!

目前时序预测的SOTA模型大多基于Transformer架构&#xff0c;以数值序列为输入&#xff0c;如下图的上半部分所示&#xff0c;通过多重编码融合历史数据信息&#xff0c;预测未来一定窗口内的序列数值。 受到大语言模型提示工程技术的启发&#xff0c;文章提出了一种时序预测新…

Redis小计(3)

目录 redis为什么是单线程模型和为什么不推荐使用"keys *"指令 redis为什么是单线程模型和为什么不推荐使用"keys *"指令 单线程模型可以避免线程安全问题&#xff0c;即并发访问导致的数据冲突。当大量客户端发来请求时&#xff0c;redis服务器只能一个一…

排序之冒泡排序

冒泡排序是一种简单的排序算法&#xff0c;它重复地遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换&#xff0c;也就是说该数列已经排序完成。 思路&#xff1a; 左边大于右边交…

Mobileperf:优化移动应用性能的关键工具

引言&#xff1a; 随着移动设备的普及和功能的不断增强&#xff0c;移动应用在人们的日常生活中扮演着越来越重要的角色。然而&#xff0c;由于移动设备资源有限&#xff0c;如处理器、内存和电池等&#xff0c;移动应用的性能问题也日益突出。为了提高用户体验和满足用户需求&…

单机部署Rancher

上次已经安装完毕了k8s了&#xff0c;但是想要界面化的管理&#xff0c;离不开界面工具&#xff0c;首推就是rancher&#xff0c;本文介绍安装rancher的安装&#xff0c;也可以将之前安装的k8s管理起来。 已经安装完毕docker和docker-ce的可以直接从第三部分开始。 一、基础准…