用指针法编写求 a 数组 n 个元素中的数值最大和最小的函数。 并求一维数组 10 个数中最大值和最小值。

#include<stdio.h>
main()
{
int *p,i,a[10],min,max;
int f();
p=a;
printf("请输入10个数:");
for(i=0;i<10;i++);
scanf("%d",p++);
p=a;
f(p,10);
printf("max=%d,min=%d",max,min);
}
int f(int *x,int n)
{
int max,min,i;
*max=*x;
for(i=1;i<n;i++)
{
if(max<*(x+i))
*max=*(x+i);
if(min<*(x+i))
*min=*(x+i);
}
return max,min;
}

1、#define N 10

#include <stdio.h>

void main()

{

int *num;

int min, max;

int i;

printf("请输入N个数:\n");

for (i = 0; i < N; i++)

scanf("%d", num + i);

min=*num;max=*num;

for (i = 0; i < N; i++)

{if(min>*num+i)

2、#include <stdio.h>

#define N 10  //定义符号常bai量

//求最大值du函数

int max_func(int a[],int n)

{

int i,max;

for(max=a[0],i=1;i<N;i++)  //初始zhi默认最大值为a[0],遍历数组元素

if(max<a[i])  //如果当前最大值<当前数组元素,则dao将该元素赋值给max

max=a[i];

return max;

}

//求最小值函数

int min_func(int a[],int n)

{

int i,min;

for(min=a[0],i=1;i<N;i++)  //初始默认最小值为a[0],遍历数组元素

if(min>a[i])  //如果当前最小值>当前数组元素,则将该元素赋值给min

min=a[i];

return min;

}

//求平均值函数

float ave_func(int a[],int n)

{

for(i=sum=0;i<N;i++)  //初始设置sum=0,遍历数组元素

sum+=a[i];  //累加数组元素

ave=1.0*sum/n;  //求平均值

return ave;

}

int main()

{

int arr[N],i;

int max,min;

float ave;

for(i=0;i<N;i++)  //输入10个数组元素

scanf("%d",&arr[i]);

max=max_func(arr,N);  //调用max_func()函数

min=min_func(arr,N);  //调用min_func()函数

ave=ave_func(arr,N);  //调用ave_func()函数

printf("最大值=%d\n最小值=%d\n平均值=%.2f\n",max,min,ave);  //输出结果

扩展资料:

指针相对于一个内存单元来说,指的是单元的地址,该单元的内容里面存放的是数据。在C语言中,允许用指针变量来存放指针,因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。

指针变量是存放一个变量地址的变量,不同于其他类型变量,它是专门用来存放内存地址的,也称为地址变量。定义指针变量的一般形式为:类型说明符*变量名。

类型说明符表示指针变量所指向变量的数据类型;*表示这是一个指针变量;变量名表示定义的指针变量名,其值是一个地址,例如:char*p1;表示p1是一个指针变量,它的值是某个字符变量的地址。

参考资料来源:百度百科-指针

温馨提示:答案为网友推荐,仅供参考
相似回答