完数c++语言程序_C语言经典100题(19)

1

上期答案揭晓

首先给大家看看上一篇文章C语言经典100题(18)中第三部分编程题的答案:

#includeint main(){    int s=0,a,n,t;    printf("请输入 a 和 n:\n");    scanf("%d%d",&a,&n);    t=a;    while(n>0)    {        s+=t;        a=a*10;        t+=a;        n--;    }    printf("a+aa+...=%d\n",s);    return 0;}

以上实例输出结果为:

请输入 a 和 n:2 5a+aa+...=24690

2

今日知识分享

指针的算术运算

C 指针是一个用数值表示的地址。因此,您可以对指针执行算术运算。可以对指针进行四种算术运算:++、--、+、-。

假设 ptr 是一个指向地址 1000 的整型指针,是一个 32 位的整数,让我们对该指针执行下列的算术运算:

ptr++

在执行完上述的运算之后,ptr 将指向位置 1004,因为 ptr 每增加一次,它都将指向下一个整数位置,即当前位置往后移 4 个字节。这个运算会在不影响内存位置中实际值的情况下,移动指针到下一个内存位置。如果 ptr 指向一个地址为 1000 的字符,上面的运算会导致指针指向位置 1001,因为下一个字符位置是在 1001。

递增一个指针

我们喜欢在程序中使用指针代替数组,因为变量指针可以递增,而数组不能递增,数组可以看成一个指针常量。下面的程序递增变量指针,以便顺序访问数组中的每一个元素:

#include const int MAX = 3;int main (){   int  var[] = {10, 100, 200};   int  i, *ptr;   /* 指针中的数组地址 */   ptr = var;   for ( i = 0; i < MAX; i++)   {      printf("存储地址:var[%d] = %x\n", i, ptr );      printf("存储值:var[%d] = %d\n", i, *ptr );      /* 移动到下一个位置 */      ptr++;   }   return 0;}

当上面的代码被编译和执行时,它会产生下列结果:

存储地址:var[0] = bf882b30存储值:var[0] = 10存储地址:of var[1] = bf882b34存储值:var[1] = 100存储地址:of var[2] = bf882b38存储值:var[2] = 200

递减一个指针

同样地,对指针进行递减运算,即把值减去其数据类型的字节数,如下所示:

#include const int MAX = 3;int main (){   int  var[] = {10, 100, 200};   int  i, *ptr;   /* 指针中最后一个元素的地址 */   ptr = &var[MAX-1];   for ( i = MAX; i > 0; i--)   {      printf("存储地址:var[%d] = %x\n", i-1, ptr );      printf("存储值:var[%d] = %d\n", i-1, *ptr );      /* 移动到下一个位置 */      ptr--;   }   return 0;}

当上面的代码被编译和执行时,它会产生下列结果:

存储地址:var[2] = 518a0ae4存储值:var[2] = 200存储地址:var[1] = 518a0ae0存储值:var[1] = 100存储地址:var[0] = 518a0adc存储值:var[0] = 10

指针的比较

指针可以用关系运算符进行比较,如 ==、< 和 >。如果 p1 和 p2 指向两个相关的变量,比如同一个数组中的不同元素,则可对 p1 和 p2 进行大小比较。

下面的程序修改了上面的实例,只要变量指针所指向的地址小于或等于数组的最后一个元素的地址 &var[MAX - 1],则把变量指针进行递增:

#include const int MAX = 3;int main (){   int  var[] = {10, 100, 200};   int  i, *ptr;   /* 指针中第一个元素的地址 */   ptr = var;   i = 0;   while ( ptr <= &var[MAX - 1] )   {      printf("Address of var[%d] = %x\n", i, ptr );      printf("Value of var[%d] = %d\n", i, *ptr );      /* 指向上一个位置 */      ptr++;      i++;   }   return 0;}

当上面的代码被编译和执行时,它会产生下列结果:

Address of var[0] = bfdbcb20Value of var[0] = 10Address of var[1] = bfdbcb24Value of var[1] = 100Address of var[2] = bfdbcb28Value of var[2] = 200

3

今日经典编程题题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。程序分析:请参照:C语言经典100题(14)。

各位有兴趣的读者可以自行设计程序实现,我将在下一篇文章揭晓该题的代码实现供参考!

扫码关注我,手把手带你撸代码f8f759116f2ad820095a14b8662fccf5.png

如果你觉得文章让您增长了知识,

请点击右下方的“在看

  66b51860a0af92f9d0fb5ae963ed2d6d.gif

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

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

相关文章

PHP怎样表示几时几分,PHP将时间戳转换为刚刚、N分钟前、今天几点几分、昨天几点几分......

自定义函数&#xff1a;<?php date_default_timezone_set(PRC); // 设置时区&#xff0c;如果已经设置可以删除function timeFormat( $timestamp ) {$curTime time();$space $curTime - $timestamp;if($space < 60) { // 一分钟以内$string "刚刚";return …

古巴:为生产做准备

“它可以在我的本地机器上运行&#xff01;” 如今&#xff0c;这听起来像模因&#xff0c;但仍然存在“开发环境与生产环境”的问题。 作为开发人员&#xff0c;您应始终牢记&#xff0c;您的应用程序有一天将在生产环境中开始运行。 在本文中&#xff0c;我们将讨论一些特定于…

php重载,PHP 重载

PHP 重载一个类中的方法与另一个方法同名&#xff0c;但是参数不同&#xff0c;这种方法称之为重载方法。很遗憾因为 PHP 是弱类型的语言&#xff0c; 所以在方法的参数中本身就可以接收不同类型的数据&#xff0c;又因为 PHP 的方法可以接收不定个数的参数&#xff0c;所以在 …

平板安装python_在CentOS上安装Python3的三种方法

Centos7默认自带了Python2.7版本,但是因为项目需要使用Python3.x你可以按照此文的三个方法进行安装.注&#xff1a;本文示例安装版本为Python3.5&#xff0c;一、Python源代码编译安装安装必要工具 yum-utils &#xff0c;它的功能是管理repository及扩展包的工具 (主要是针对r…

hibernate脏数据_Hibernate脏检查的剖析

hibernate脏数据介绍 持久性上下文使实体状态转换入队 &#xff0c;该实体状态转换在刷新后转换为数据库语句。 对于托管实体&#xff0c;Hibernate可以代表我们自动检测传入的更改并安排SQL UPDATE。 这种机制称为自动脏检查 。 默认的脏检查策略 默认情况下&#xff0c;Hibe…

python查询sql_Python处理SQL语句(提供SQL查询平台使用)

在搞公司的SQL查询(MySQL)平台时&#xff0c;需要对用户查询SQL进行条数限制&#xff0c;默认是在配置文件中配置一个“limit 1000”这样的参数。最自然想到的就是对用户通过web传入的SQL做处理&#xff0c;默认加上limit参数。这样一来就有这么几个问题需要处理&#xff1a;1…

php组成,php接口有几部分组成?

程序接口&#xff0c;由一套陈述、功能、选项、其它表达程序结构的形式、以及程序师使用的程序或者程序语言提供的数据组成PHP接口(interface)的特点1、接口的方法必须是公开的。2、接口的方法默认是抽象的&#xff0c;所以不在方法名前面加abstract。3、接口可以定义常量&…

AWS Elasticsearch后模式

因此&#xff0c;碰巧我们在SaaS版本的LogSentinel上遇到了生产问题–我们的Elasticsearch停止了对新数据编制索引。 由于Elasticsearch只是辅助存储&#xff0c;因此没有数据丢失&#xff0c;但这给我们的客户带来了一些问题&#xff08;他们无法在其仪表板上看到实时数据&…

python设置word背景色_Python数据可视化:WordCloud入门

WordCloud是一种很好的展现数据的方式&#xff0c;网上也有不少小工具和在线网页。但是有些不支持中文&#xff0c;有些安装复杂&#xff0c;所以决定用Python实现。主要参考官网&#xff0c;通过官网的例子&#xff0c;讲一下WordCloud的制作。主要流程获取内容的路径如果是一…

java 解析日期格式_日期/时间格式/解析,Java 8样式

java 解析日期格式自Java 几乎 开始以来&#xff0c;Java开发人员就通过java.util.Date类&#xff08;自JDK 1.0起&#xff09;和java.util.Calendar类&#xff08;自JDK 1.1起 &#xff09;来处理日期和时间。 在这段时间内&#xff0c;成千上万&#xff08;甚至数百万&#x…

php第三方登录代码,thinkPHP5项目中实现QQ第三方登录功能

本文实例讲述了thinkPHP5项目中实现QQ第三方登录功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;最近用thinkPHP 5框架做了一个婚纱店的项目&#xff0c;在开发过程中需要用到第三方登录&#xff0c;腾讯官方给的案例是几个文件相互包含实现的&#xff0c;放到tp5…

mac 显示隐藏文件_如何在Mac上显示隐藏文件?苹果mac显示隐藏文件夹方法

与任何操作系统一样&#xff0c;macOS会将重要文件隐藏起来&#xff0c;以防止意外删除它们并因此而损坏系统。但是&#xff0c;在某些情况下&#xff0c;您可能需要在Mac上显示隐藏文件&#xff0c;例如&#xff0c;浏览“ 库”文件夹并清除旧日志&#xff0c;缓存或其他垃圾文…

分布式虚拟跟踪

跟踪提供了对系统的可见性&#xff0c;使开发人员和操作人员可以在运行时观察应用程序。 当系统不断增长并与更多微服务进行交互时&#xff0c;跟踪变得非常有价值。 在这样的环境中&#xff0c;这些痕迹非常棒&#xff0c;可以定位导致性能下降的故障和瓶颈。 在这篇文章中&a…

php 删除数组的空元素,php删除数组空元素的方法_后端开发

php如何实现自动跳转_后端开发php实现自动跳转的方法&#xff1a;1、通过php内置函数“header”&#xff0c;将http响应头中的“Location”设置为要跳转的URL即可&#xff1b;2、可以在javascript代码中将“window.location.href”指向要跳转的URL即可。php删除数组空元素的方法…

map for循环_JavaScript 用 for 循环太 low?你是不是有什么误解

天要吐槽下&#xff0c;我时不时地看到有些文章说“循环语句不好&#xff0c;你应该用 filter&#xff0c;map 和 reduce ”——每次看到有文章鼓吹&#xff0c;所有需要循环的场景一律用这几个函数式方法&#xff0c;我都恨得牙痒痒。没错&#xff0c;这些函数式方法确实有它们…

vue 动态组件组件复用_真正的动态声明性组件

vue 动态组件组件复用在这篇简短的文章中&#xff0c;我将重点介绍ADF动态声明性组件。 我的意思是一个众所周知的ADF标签af&#xff1a;declarativeComponent 。 它可以用作将页面设计为页面片段和组件组成的一种非常便捷的方法。 例如&#xff0c;我们的页面可以包含以下代码…

简单工程验收单表格_中铁超大型工程项目-123个精细化管理手册配套表格附件,超全...

中铁超大型工程项目-123个精细化管理手册配套表格附件&#xff0c;超全&#xff01;什么是项目精细化&#xff1f;答&#xff1a;工程项目精细化管理是一个系统的管理体系&#xff0c;包含一系列管理制度和办法&#xff0c;除了《工程项目精细化管理办法》这个纲领性文件外&…

php 执行 javascript,Bash/PHP/Javascript:如何运行输出javascript的php文件,并执行该javascript?...

目前我试图发送一个webhook请求来争执&#xff0c;所以我可以发送更新到我的资源库到我的不一致服务器中的一个频道。如果我在浏览器中加载页面&#xff0c;它会运行此代码&#xff0c;并且该消息将出现在我的不一致中&#xff1a;$(document).ready(function(){setTimeout(sen…

递归分解WAR文件

抽象 是否曾经需要分解WAR文件以及分解WAR文件中的所有JAR文件&#xff1f; 是的&#xff0c;我也是&#xff01; 我写了Ferris-war-exploder来爆炸&#xff1a; 一个JAR文件 一个WAR文件&#xff0c;它找到的每个JAR文件也会爆炸。 包含每个JAR文件&#xff08;请参阅&…

判断unsigned long long乘法溢出_信息安全课程17:缓冲区溢出2

在之前所讲述的内容中&#xff0c;都是我们在自己的程序中自行修改的&#xff1b;正常情况下&#xff0c;没有程序员会在自己的代码中这样写——那有没有办法攻击别人正常的程序呢&#xff1f;攻击者怎么样能够影响到不是自己的程序的返回地址呢&#xff1f;以及怎么样通过攻击…