http://blog.csdn.net/itcastcpp//details/39277193
題目:隨機生成1024個數,存入一段內存,用指針實現獲取1024個數的最大數地址,最小數地址,具體實現如下:
[cpp]?view plain
?copy #include<stdlib.h>?? #include<stdio.h>?? #include<time.h>?? int?FindMaxMinByIndex(int?*?pInput,?int?nLen,?int?**?ppMax,?int?**?ppMin)?? {?? ????if?(!ppMax)?? ????{?? ????????return?0;?? ????}?? ????if?(!ppMin)?? ????{?? ????????return?0;?? ????}?? ????if?(!pInput)?? ????{?? ????????return?0;?? ????}?? ????int?i?=?0;?? ????int?*?pMax?=?&pInput[0];?? ????int?*?pMin?=?&pInput[0];?? ????for?(i?=?0;?i?<?nLen;?i++)?? ????{?? ????????if?(*pMax?<?pInput[i])?? ????????{?? ????????????pMax?=?pInput?+?i;?? ????????}?? ????????if?(*pMin?>?pInput[i])?? ????????{?? ????????????pMin?=?pInput?+?i;?? ????????}?? ????}?? ????*ppMax?=?pMax;?? ????*ppMin?=?pMin;?? ????return?1;?? }?? int?FindMaxMinByPtr(int?*?pInput,?int?nLen,?int?**?ppMax,?int?**?ppMin)?? {?? ????if?(!pInput?||?!ppMax?||?!ppMin)?? ????{?? ????????return?0;?? ????}?? ????int?*?pCurPtr?=?pInput;?? ????int?*?pEndPtr?=?pInput?+?nLen;?? ????int?*?pMax?=?pInput;?? ????int?*?pMin?=?pInput;?? ????for?(;?pCurPtr?<?pEndPtr;?pCurPtr++)?? ????{?? ????????if?(*pMax?<*pCurPtr)?? ????????{?? ????????????pMax?=?pCurPtr;?? ????????}?? ????????if?(*pMin?>?*pCurPtr)?? ????????{?? ????????????pMin?=?pCurPtr;?? ????????}?? ????}?? ????*ppMax?=?pMax;?? ????*ppMin?=?pMin;?? ????return?1;?? }?? int?main()?? {?? ????int?Data[1024]?=?{?0?};?? ????int?i?=?0;?? ????srand(time(NULL));?? ????for?(i?=?0;?i?<?1024;?i++)?? ????{?? ????????Data[i]?=?rand()?%?10;?? ????}?? ????printf("數據:\n");?? ????for?(i?=?0;?i?<?1024;?i++)?? ????{?? ????????printf("%d??",?Data[i]);?? ????}?? ????printf("\n");?? ????int?*?pMax?=?NULL;?? ????int?*?pMin?=?NULL;?? ????if?(FindMaxMinByIndex(Data,?1024,?&pMax,?&pMin)?==?0)?? ????{?? ????????printf("查找失敗.\n");?? ????}?? ????else?? ????{?? ????????printf("最大數:%d,最小數:%d,最大數地址:%p,最小數地址:%p\n",?*pMax,?*pMin,?pMax,?pMin);?? ????}?? ????if?(FindMaxMinByPtr(Data,?1024,?&pMax,?&pMin)?==?0)?? ????{?? ????????printf("查找失敗.\n");?? ????}?? ????else?? ????{?? ????????printf("最大數:%d,最小數:%d,最大數地址:%p,最小數地址:%p\n",?*pMax,?*pMin,?pMax,?pMin);?? ????}?? ?? ????system("pause");?? ????return?0;?? }??
運行效果如圖1所示:
總結
以上是生活随笔為你收集整理的随机生成1024个数,存入一段内存,用指针实现获取1024个数的最大数地址,最小数地址的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。