数一下 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.hqwc.cn/news/325433.html

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

相关文章

web学习笔记(十一)

目录 1.数据类型 1.1数据类型分类 &#xff08;1&#xff09;简单&#xff08;基本&#xff09;数据类型 &#xff08;2&#xff09;复杂&#xff08;特殊&#xff09;数据类型 1.2判断数据类型的方法 &#xff08;1&#xff09;常规判断方法&#xff1a; &#xff08;2…

机器人制作开源方案 | 智能盲道除雪小车

作者&#xff1a;汪荣顺 李明旭 马晓乐 吴泽俊 李以陈 单位&#xff1a;江汉大学 指导老师&#xff1a;张朝刚 张会利 本文论述了一种新型智能盲道除雪小车的设计与研发。由于目前的除雪设备集中在公路、城市道路、机场路面、高速公路等领域&#xff0c;但对于街道等路况的研…

Vue2 - 生命周期

目录 1&#xff0c;介绍1&#xff0c;初次渲染2&#xff0c;数据改变后的重渲染 2&#xff0c;生成周期钩子执行顺序 1&#xff0c;介绍 创建 vue 实例和创建组件的流程基本一样。 1&#xff0c;初次渲染 做一些初始化操作&#xff0c;主要设置一些私有属性到实例中。 运行 b…

十种编程语言的对比分析

在当今的软件开发领域&#xff0c;编程语言扮演着至关重要的角色。不同的编程语言各有其特点和适用场景&#xff0c;选择合适的编程语言能够提高开发效率和软件质量。本文将对十种常见的编程语言进行对比分析&#xff0c;帮助读者了解它们的优缺点和适用场景。 一、Python Pyt…

【java】期末复习知识点

简单不先于复杂&#xff0c;而是在复杂之后。 文章目录 填空题封装包主类开发过程的改变interfaceabstract class访问控制关键字继承多态object 类Java I/O(输入/输出)异常线程和进程创建线程的两种基本方法 编程题Hello World编写Swing程序&#xff0c;显示一个空白窗口 填空题…

发票信息提取v1.2.0

程序介绍 “发票信息提取”是一款用于提取电子发票的PDF、XML文件中的开票信息到excel表格的软件&#xff0c;无需联网及进行复杂配置&#xff0c;打开即用。目前支持增值税电子发票&#xff08;非数电票&#xff09;原始PDF文件&#xff0c;及数电票的XML文件。 更新内容 增加…

怎么查询网络出口IP

怎么查询自己的网络的出口IP 背景 一般跟第三方服务进行接口数据交互的时候&#xff0c;对方都会让我们提供调用接口的网络的出口IP&#xff0c;对方会把该IP地址加到对方的白名单中。这样我们才能有权限进行接口的访问。 解决办法 下面介绍三种常用的查询网络出口IP的办法…

uniapp点击跳转传对象

目录 传对象传对象传送组件接受组件 最后 传对象 传对象 传送组件 点击传给组件 <view class"dki-tit-edit" click"gotificatedit(item)">编辑 </view>gotificatedit(item){console.log(item,item);let options JSON.stringify(item);uni.…

Mysql 分割字符串,一行变多行,@rownum,mysql.help_topic

1 前言 朋友最近遇到一个比较棘手的 sql 问题&#xff0c;让我帮忙看看&#xff1a; 他有两张表 testa 和 testb &#xff0c;一个表存的日期&#xff0c;另一个表存字符串例如 2023-11-01,2023-11-02&#xff0c;如何将这两张表关联起来&#xff0c;只查 testa 表的数据&#…

分布式系统架构设计之分布式缓存技术选型

一、概述 随着互联网业务的快速发展&#xff0c;分布式系统已经成为了解决大规模并发请求、高可用性、可扩展性等问题的重要手段。在分布式系统中&#xff0c;缓存作为提高系统性能的关键技术&#xff0c;能够显著降低数据库负载、减少网络延迟、提高数据访问速度。当面对大量…

【安卓的签名和权限】

Android 编译使用哪个key签名&#xff1f; 一看Android.mk 在我们内置某个apk的时候都会带有Android.mk&#xff0c;这里面就写明了该APK使用的是什么签名&#xff0c;如&#xff1a; LOCAL_CERTIFICATE : platform表明使用的是platform签名 LOCAL_CERTIFICATE : PRESIGNED…

大模型加速库flash-attention的安装教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…