C语言编程:从键盘任意输入三个数,编写求其最大值、最小值的函数,用指针作函数参数实现。

如题所述

程序如下:
#include<stdio.h>
#define MAXSIZE 10
main()

{
int a[MAXSIZE];
int k;
printf("please inter ten number:");
for(k=0;k<MAXSIZE;k++)
{

scanf("%d",&a[k]);
}

Fun(a);
for(k=0;k<MAXSIZE;k++)
printf("%d,",a[k]);

}

void Fun(int a[])

{

int i;
int temp;
int MaxNum=a[0];
int maxIndex = 0;
int minIndex = 0;
int MinNum=a[0];
for(i=0;i<10;i++)

{

if(a[i]>MaxNum)

{

MaxNum=a[i];
maxIndex = i;
}

else if(a[i]<MinNum)
{
MinNum=a[i];
minIndex = i;

}

}
temp = a[maxIndex];
a[maxIndex] = a[minIndex];
a[minIndex] = temp;
}

扩展资料:

指针定义格式

类型名 *函数名(函数参数列表);

其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数返回的指针指向的类型”。

“(函数参数列表)”中的括号为函数调用运算符,在调用语句中,即使函数不带参数,其参数表的一对括号也不能省略。其示例如下:int *pfun(int, int);由于“*”的优先级低于“()”的优先级,因而pfun首先和后面的“()”结合,也就意味着,pfun是一个函数。即:int *(pfun(int, int));

接着再和前面的“*”结合,说明这个函数的返回值是一个指针。由于前面还有一个int,也就是说,pfun是一个返回值为整型指针的函数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-06
VC下测试可以通过:
#include <stdio.h>
#define N 3
int max_fun(int*p,int n)
{
int temp=*p;
while(--n)if(*++p>temp)temp=*p;
return temp;
}
int min_fun(int*p,int n)
{
int temp=*p;
while(--n)if(*++p<temp)temp=*p;
return temp;
}
void main()
{
int a[N],*p;
printf("input %d number:",N);
for(p=a;p-a<N;p++)scanf("%d",p);
printf("Max=%d\n",max_fun(a,N));
printf("Max=%d\n",min_fun(a,N));
}本回答被网友采纳
第2个回答  2013-11-06
最易懂的算法
#include<stdio.h>
void main()
{
float max(float a,float b,float c);
float min(float a,float b,float c);
float a,b,c;
float Max,Min;
printf("a=");
scanf("%f",&a);
printf("b=");
scanf("%f",&b);
printf("c=");
scanf("%f",&c);
Max=max(a,b,c);
Min=min(a,b,c);
printf("The biggest is %f\n",Max);
printf("The smallest is %f\n",Min);
}

float max(float a,float b,float c)
{
float max;
if(a>b&&a>c)max=a;
else if(b>a&&b>c)max=b;
else max=c;
return(max);
}

float min(float a,float b,float c)
{
float min;
if(a<b&&a<c)min=a;
else if(b>a&&b<c)min=b;
else min=c;
return(min);
}
第3个回答  2013-11-06
(比较方法仅供参考)
if(a>=b)
{
min=b;
max=a;
if(c>=a)
{
max=c;
}
if(c<=b)
{
min=c;
}
}
Console.WriteLine("min={0},max={1}",min,max);
第4个回答  2013-11-06
# include <stdio.h>
int main()
{
int a[10],*max,*min,i;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=min=&a[0];
for(i=1;i<10;i++)
if(*max<a[i])
max=&a[i];
if(*min>a[i])
min=&a[i];
printf("%d %d\n",*max,*min);
}
相似回答