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

 我来答
晴说科技
2019-07-15 · 科技数码资讯分析,解读不一样视角!
晴说科技
采纳数:7 获赞数:8913

向TA提问 私信TA
展开全部

程序如下:
#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是一个返回值为整型指针的函数。

匿名用户
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));
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式