C语言,使用指针作为函数参数,写一求数组中最大值和最小指的函数
#include<stdio.h>
voidhanshu(int*arry,intsize,int*m,int*n)
{
*m=arry[0];
*n=arry[1];
for(inti=0;i<size;i++)
{
if(arry[i]>*m)
*m=arry[i];
if(arry[i]<*n)
*n=arry[i];
}
}
intmain(intargc,constchar*argv[]){。
inta[]={1,5,6,2,3,8,9,7,4,5};//定义一个十个数据的数组
intmax;//存放最大值
intmin;//存放最小值
hanshu(a,10,&max,&min);//函数传送数组,并将最大值,最小值的地址传送
printf("Themaxnumberis%d\n",max);
printf("Theminnumberis%d\n",min);
return0;
}
扩展资料:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
#include <stdio.h>
void maxminvalue(int b[], int n); /*propotype*/
int max, min;/*define global variables*/
void main()
{
int i, a[] = {21,34,11,45,89,26,87,39,63,50}, n;
n = sizeof(a)/sizeof(a[0]);
maxminvalue(a, n); /*call function*/
printf("min=%d, max=%d\n",min,max);
}
void maxminvalue(int b[], int n)
{
int i;
max=min=b[0]; /*initialization*/
for (i = 1; i < n; i++)
{
if (b[i] < min)
min = b[i];
else if(b[i] > max)
max = b[i];
}
}
扩展资料
C语言指针变量作为函数参数
在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。
像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合。
有的时候,对于整数、小数、字符等基本类型数据的操作也必须要借助指针,一个典型的例子就是交换两个变量的值。
思路:
1 函数参数设计:数组首地址(指针),数组长度(int),最大值及最小值(两个指针)。
2 以第一个数为最大/最小值。
3 遍历其余数,与最大/最小值比较,如果更大/小,则替换该值。
当遍历结束,则得到最大及最小值。
代码:
void get_min_max(int *a, int l, int *min, int *max)
{
int i;
*min = *max = *a;
for(i = 1; i < l; i ++)
{
if(*min > a[i]) *min = a[i];
if(*max < a[i]) *max = a[i];
}
}
#define N 10
void main()
{
float a[N],i,*max,*min;
max=a;
min=a;
for(i=0;i<N;i++)
{
scanf("%f",a[i]);
}
for(i=0;i<N;i++)
{
*max=(a[i]>*max)?a[i]:*max;
*min=(a[i]<*min)?a[i]:*min;
}
printf("max=%f\tmin=%f\n",*max,*min);
}