c语言,编写函数int* find(),找出一维整型数组中的最大数,返回其指针。 50
4个回答
展开全部
/********************************
*该函数有所欠缺,不完全符合要求,
*仅支持返回第一个最大的数的指针
*很久没写c了
*******************************/
int* find(int[] a)
{
int* p = null,big=null;
p=a;
big=a;
int length = sizeof(a)/sizeof(int);
length--;
while(length--){
big = *p>*big?p:big;
p++;
}
return big;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对像我一样的初学者而言,指针数组、数组指针,听名字就很容易傻傻分不清。对于数组与指针的不同,笔者已经在上一篇文章里面已经做出了相对简单的解释。那么,“指针数组”和“数组指针”这俩货,又是个啥奇怪的东西呢?
为了防止混淆,我们先从命名上给一个分辨它们的“真实身份”的小技巧。这个技巧就是:看名字的最后两个字。比如“数组指针”,它就是指针;而“指针数组”,是一个数组。在不了解它们有啥用的情况下,先分清楚两种相似概念的不同是一件有必要的事情。
在“验明正身”之后,我们首先来谈谈指针数组的详细概念以及基础用法。
为了防止混淆,我们先从命名上给一个分辨它们的“真实身份”的小技巧。这个技巧就是:看名字的最后两个字。比如“数组指针”,它就是指针;而“指针数组”,是一个数组。在不了解它们有啥用的情况下,先分清楚两种相似概念的不同是一件有必要的事情。
在“验明正身”之后,我们首先来谈谈指针数组的详细概念以及基础用法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面已经有两位高手做出了回答,我运行了一下,《怺逺恒暒》有时候得不到正确的结果;《kaixingui2012》的不能运行,提示类型不对。不知道什么原因,也许是我的版本有问题?
我也做了一个,感觉运行还是不错的。请比较吧!
#include "stdio.h"
double fun(double a[],int n,int *max,int *min);/*函数原型声明:其中a为数组,
n为数组元素个数,max指向最大数,min指向最小数,函数返回值为平均值*/
int main()
{
double b[10],aver;
int x,y=10,max=0,*ma=&max,min=0,*mi=&min;
for(x=0;x<y;x++){b[x]=x*(x-8.25)*0.1;printf("数%d=%f\n",x,b[x]);}
aver=fun(b,y,ma,mi);
printf("最大的数为第%d个数(%f),最小的数为第%d个数(%f),平均值为%f",*ma,b[*ma],*mi,b[*mi],aver);
return 0;
}
double fun(double a[],int n,int*max,int*min)
{
int i;
double sum=0;
double max1=a[0],min1=a[0];
*max=0;
*min=0;
for(i=0;i<n;i++)
{
if(a[i]>max1){*max=i;max1=a[i];}
if(a[i]<min1){*min=i;min1=a[i];}
sum=sum+a[i];
}
printf("sum=%f,n=%d\n",sum,n);
return sum/n;
我也做了一个,感觉运行还是不错的。请比较吧!
#include "stdio.h"
double fun(double a[],int n,int *max,int *min);/*函数原型声明:其中a为数组,
n为数组元素个数,max指向最大数,min指向最小数,函数返回值为平均值*/
int main()
{
double b[10],aver;
int x,y=10,max=0,*ma=&max,min=0,*mi=&min;
for(x=0;x<y;x++){b[x]=x*(x-8.25)*0.1;printf("数%d=%f\n",x,b[x]);}
aver=fun(b,y,ma,mi);
printf("最大的数为第%d个数(%f),最小的数为第%d个数(%f),平均值为%f",*ma,b[*ma],*mi,b[*mi],aver);
return 0;
}
double fun(double a[],int n,int*max,int*min)
{
int i;
double sum=0;
double max1=a[0],min1=a[0];
*max=0;
*min=0;
for(i=0;i<n;i++)
{
if(a[i]>max1){*max=i;max1=a[i];}
if(a[i]<min1){*min=i;min1=a[i];}
sum=sum+a[i];
}
printf("sum=%f,n=%d\n",sum,n);
return sum/n;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询