随机生成1024个数,存入一段内存,用指针实现获取1024个数的最大数地址,最小数地址

http://blog.csdn.net/itcastcpp//details/39277193

题目:随机生成1024个数,存入一段内存,用指针实现获取1024个数的最大数地址,最小数地址,具体实现如下:

[cpp] view plain copy
  1. #include<stdlib.h>  
  2. #include<stdio.h>  
  3. #include<time.h>  
  4. int FindMaxMinByIndex(int * pInput, int nLen, int ** ppMax, int ** ppMin)  
  5. {  
  6.     if (!ppMax)  
  7.     {  
  8.         return 0;  
  9.     }  
  10.     if (!ppMin)  
  11.     {  
  12.         return 0;  
  13.     }  
  14.     if (!pInput)  
  15.     {  
  16.         return 0;  
  17.     }  
  18.     int i = 0;  
  19.     int * pMax = &pInput[0];  
  20.     int * pMin = &pInput[0];  
  21.     for (i = 0; i < nLen; i++)  
  22.     {  
  23.         if (*pMax < pInput[i])  
  24.         {  
  25.             pMax = pInput + i;  
  26.         }  
  27.         if (*pMin > pInput[i])  
  28.         {  
  29.             pMin = pInput + i;  
  30.         }  
  31.     }  
  32.     *ppMax = pMax;  
  33.     *ppMin = pMin;  
  34.     return 1;  
  35. }  
  36. int FindMaxMinByPtr(int * pInput, int nLen, int ** ppMax, int ** ppMin)  
  37. {  
  38.     if (!pInput || !ppMax || !ppMin)  
  39.     {  
  40.         return 0;  
  41.     }  
  42.     int * pCurPtr = pInput;  
  43.     int * pEndPtr = pInput + nLen;  
  44.     int * pMax = pInput;  
  45.     int * pMin = pInput;  
  46.     for (; pCurPtr < pEndPtr; pCurPtr++)  
  47.     {  
  48.         if (*pMax <*pCurPtr)  
  49.         {  
  50.             pMax = pCurPtr;  
  51.         }  
  52.         if (*pMin > *pCurPtr)  
  53.         {  
  54.             pMin = pCurPtr;  
  55.         }  
  56.     }  
  57.     *ppMax = pMax;  
  58.     *ppMin = pMin;  
  59.     return 1;  
  60. }  
  61. int main()  
  62. {  
  63.     int Data[1024] = { 0 };  
  64.     int i = 0;  
  65.     srand(time(NULL));  
  66.     for (i = 0; i < 1024; i++)  
  67.     {  
  68.         Data[i] = rand() % 10;  
  69.     }  
  70.     printf("数据:\n");  
  71.     for (i = 0; i < 1024; i++)  
  72.     {  
  73.         printf("%d  ", Data[i]);  
  74.     }  
  75.     printf("\n");  
  76.     int * pMax = NULL;  
  77.     int * pMin = NULL;  
  78.     if (FindMaxMinByIndex(Data, 1024, &pMax, &pMin) == 0)  
  79.     {  
  80.         printf("查找失败.\n");  
  81.     }  
  82.     else  
  83.     {  
  84.         printf("最大数:%d,最小数:%d,最大数地址:%p,最小数地址:%p\n", *pMax, *pMin, pMax, pMin);  
  85.     }  
  86.     if (FindMaxMinByPtr(Data, 1024, &pMax, &pMin) == 0)  
  87.     {  
  88.         printf("查找失败.\n");  
  89.     }  
  90.     else  
  91.     {  
  92.         printf("最大数:%d,最小数:%d,最大数地址:%p,最小数地址:%p\n", *pMax, *pMin, pMax, pMin);  
  93.     }  
  94.   
  95.     system("pause");  
  96.     return 0;  
  97. }  
运行效果如图1所示:

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

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

相关文章

UVa11134

【题目分析】 觉得是一道挺考验贪心掌握程度的题目&#xff0c;我就算知道是要用贪心而且肯定和区间有关&#xff0c;肯定要进行一下排序什么的我还是没有找到合适的贪心策略。 经过大佬的博客后我才明白如何进行贪心。 如果没有任何提示看这道题&#xff0c;首先&#xff0…

传输层:IP 地址解析 路由转发

IP 地址与硬件地址 1. 地址解析 通过IP地址将其如何转换为 MAC 地址.解决同一个局域网上的主机或路由的 IP 地址和硬件地址的映射问题. 即以太网上除了主机还有路由. 即如果发出的请求所有的主机都没有做出相应, 那么该以太网上的路由会对其做出响应. (1) 以太网内部主机与…

UVa11582

一个数学问题,一旦出现循环确定循环节以后就能解决问题啦. 加上一个快速幂取模.需要注意的是数据范围是264,所以必须用unsigned long long才能解决问题. 觉得板子还是要会自己写,否则不同的题目具体有一些小的改变就会束手无策. 还有就是发现如果每次初始化数组的话就会超时,所…

输入一个单向链表,输出该链表中倒数第K个结点

http://blog.csdn.net/itcastcpp/article/details/39274891//尹成 单链表操作 #include <iostream> using namespace std; class LinkList;struct LinkNode { public:LinkNode(int value 0):m_value(value),pNext(NULL){}~LinkNode(){pNext NULL;}friend class LinkList…

网络层:构成超网(CIDR)

CIDR构成超网 CIDR消除了原来的传统的 A,B, C, D类地址, 使用了各种网络前缀来代替原来分类地址中的网络号和子网号, IP 地址由原来的三级分类又变成了两级分类. 其中网络号和子网号是一个随机的长度. 其中 CIDR 也可以使用 / 的形式来表示, 其中在 / 前面写上网络前缀的位数.…

UVa12169

我们可以暴力枚举a,然后通过x1和x3确定b的值&#xff0c;然后确定其他的数字&#xff0c;一旦出现错误就放弃这组解。 关键问题就在于如何通过a,x1,x3确定b的值 x2 ( x1 * a b) % M x3 ( x2 * a b ) % M ( ( x1 * a b ) % M * a b ) % M x3 - k * M x1 * a % M * a %…

尹成 双循环链表

今天&#xff0c;我们一起用C写一个双链表&#xff0c;具体代码如下&#xff1a; DoubleList.h具体内容如下&#xff1a; [cpp] view plaincopy #include "NodeList.h" template<typename Type> class DoublyList{ public: DoublyList() :head(ne…

堆的基本操作

堆的数据结构 对于堆, 有最大堆和最小堆, 在定义一个堆的时候用一个数组表示堆, 同时为了方便定义堆的大小, 用一个 size 表示堆的有效元素, 同时为了区别最大堆和最小堆, 我们用一个函数指针表示这个堆是最大堆还是最小堆. typedef int (*Compare)(HeapType parent, HeapTyp…

UVa1605

完完全全的构造题 一种比较好想到&#xff08;虽然我没有想到。。&#xff09;的方法是做成一个两层的表格&#xff0c;第一层每一行相同&#xff0c;第二层每一列相同&#xff0c;这样每个都能和其他的相邻了。 输出格式稍微注意一下 #include<cstdio> #include<c…

Linux下的TCP/IP编程----IO复用及IO复用服务端

http://blog.csdn.net/wqc_csdn/article/details/51583901 在之前我们实现的并发服务端时通过床将多个进程来实现的&#xff0c;这种并实现并发的方式简单方便&#xff0c;但是进程的创建和销毁是很消耗系统资源的&#xff0c;在访问量大时服务器很容易出现资源不够用的情况。除…

UVa120

相当于是一个模拟&#xff0c;为了得到合适的顺序&#xff0c;我们的策略是每次找到当前没有被翻的里面最大的&#xff0c;然后把他翻到最前面&#xff0c;然后再翻到合适的位置。 需要判断一下当前是否已经有序&#xff0c;有序就不用翻了。 如果在最开头找到了合适的当前应…

二叉树的相关操作

二叉树的数据结构 typedef char SearchTreeType; typedef struct SearchTreeNode { SearchTreeType key; // 关键码 struct SearchTreeNode* lchild; struct SearchTreeNode* rchild; } SearchTreeNode; 二叉树的初始化 由于我们是用一个指向根节点的指针表示一个二叉树, …

网络层:网关协议

一. 网关 所谓的网管即就是之前路由器的名字, 即路由器和网关是一个东西 二. 内部网关协议 1. RIP协议 路由信息协议 RIP 是内部网关协议 IGP中最先得到的广泛使用的协议. 同时 RIP 是一种分布式基于距离向量的路由选择协议. RIP 协议要求网络中的每一个路由都必须维护自己…

UVa1152

题意很好理解&#xff0c;就是从四个集合里面取出四个数字的和为0&#xff0c;问有多少种取法。 直接枚举肯定是会超时的&#xff0c;所以得想办法优化一下。我们可以将两个集合的所有的和都放在一个数组里面&#xff0c;这样得到两个数组&#xff0c;然后排序&#xff0c;对第…

Linux函数--inet_pton / inet_ntop

http://blog.csdn.net/lindyl/article/details/10427925 inet_pton 和 inet_ntop Linux下这2个IP地址转换函数&#xff0c;可以在将IP地址在“点分十进制”和“整数”之间转换而且&#xff0c;inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。 inet_pto…

网络基础: 浅析应用层一

应用层 1. http协议 在 http 中协议分为了协议方案名, 登录信息名, 服务器地址, 服务器端口号(http协议绑定的端口号), 文件类型, 查询的字符串, 片段标识位 2. http 请求协议格式 httpp 总共分为三大部分, 其中首行即就是第一部分, 分为三个区域, 第一去个区域是请方法, 第…

socket 编程篇六之IPO多路复用-select poll epoll

http://blog.csdn.net/woxiaohahaa/article/details/51498951 文章参考自&#xff1a;http://blog.csdn.net/tennysonsky/article/details/45745887&#xff08;秋叶原 — Mike VS 麦克《Linux系统编程——I/O多路复用select、poll、epoll的区别使用》&#xff09; 此外&#x…

UVa11054

挺简单的小模拟。 还是要注意思维的方向&#xff0c;要有切入点&#xff0c;不能像无头苍蝇一样东想一下西想一下&#xff0c;而应该分析问题的性质&#xff0c;然后尝试思维的方向&#xff0c;从不同的方向思考&#xff08;顺序&#xff0c;逆序&#xff0c;排序后&#xff0…

浅谈传输层

1. 传输层的作用 在传输层中有两个特别重要的协议 TCP/UDP . 以快递员送快递为例说明这个问题吧. 在进行包裹传输的过程中快递员需要根据快递上的目的地址(目的计算机)来投递包裹(IP数据报), 加入在快递单上只写了收件人的所在地, 所在单位, 而只写了收件人的姓没有写收件人的…

UVa10375

题目描述很简单,就是求两个组合数的商.可是数字范围很大,肯定不能直接计算. 因此要用到唯一分解定理,即将结果全部表示为素因子的幂的形式. #include<cstdio> #include<cstring> #include<algorithm> #include<climits> #include<cctype> #inc…