使用C中的动态内存分配从数组中找出最大值和最小值。
动态内存分配使C程序员可以在运行时分配内存。
我们用来在运行时动态分配内存的不同功能是-
malloc()-在运行时以字节为单位分配一块内存。
calloc()-在运行时分配连续的内存块。
realloc()-用于减少(或)扩展分配的内存。
free()-释放先前分配的内存空间。
查找数组中最大元素的逻辑-
首先为数组分配内存
p=(int*)malloc(n*sizeof(int)); //动态内存分配 for(i=0;i<n;i++){ scanf("%d",p+i); if(*(p+i)>max) //寻找最大元素 max=*(p+i); }
在数组中查找最小元素的逻辑-
for(i=0;i<n;i++){ scanf("%d",p+i); if(*(p+i)<min) //寻找最小元素 min=*(p+i); }
#include<stdio.h> int main(){ int *p,n,i,max=-32768,min=32767; printf("\n enter size:"); scanf("%d",&n); p=(int*)malloc(n*sizeof(int)); //动态内存分配 printf("\n enter elements:"); for(i=0;i<n;i++){ scanf("%d",p+i); if(*(p+i)>max) //寻找最大元素 max=*(p+i); if(*(p+i)<min) //寻找最小元素 min=*(p+i); } printf("\n maximum=%d\n minimum=%d",max,min); free(p); }输出结果
enter size: enter elements: maximum=-32768 minimum=32767