c语言怎么编写函数,找出一维数组中的最大值和最小值,并计算出数组元素的平均值?
前面已经有两位高手做出了回答,我运行了一下,《怺逺恒暒》有时候得不到正确的结果;《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;xy;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;in;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;
}
一维数组的最大值 C语言
我还是从变成思想开始跟你说吧:
正如实际中一样,我们所谓的最大是通过比较出来的,程序中也一样,对于一个数组,她里面的数很多,必须通过一一比较来决定谁最大。在这里我们可以取一个初始的比较值,不如就用数组的第一个元素。然后从第二个开始比较,把两两比较后大的数放在一个变量Max里。这样,通过全部比较Max里的数不就是该数组中最大的数了。
程序如下:
#include “stdio.h”
int main()
{
int a[100];
int i=0;
int Max=a[0];
for(i=0;i100;i++) if(Maxa[i]) Max = a[i];
printf(“%d”,Max);
}
当然这个100是可以变的,表示你要比较的数组的元素个数,可以根据实际要比较的数组大小来改变
在c语言中一维数组求最大值
#includestdio.h
main()
{
int
a[N]={};//已知数组
int
max=a[0];//保存最大值
int
min=a[0];//保存最小值,先初始化为数组第一个元素
for(int
i=1;iN;i++)//循环判断
{
if(a[i]max)//判断最大值
max=a[i];
if(a[i]min)//判断最小值
min=a[i];
}
//输出
printf(“max=%d,min=%d\n”,max,min);
}
C语言求一个数组的最大值?
C语言程序如下:
#include stdio.h
void fun(int a[],int n,int *k)
{
int i,maxxr,j;
maxxr=a[0];
for(i=0;in;i++)
{
if(maxxra[i])
{
maxxr=a[i];
}
}
for(i=0;in;i++)
{
if(maxxr==a[i]){
j=i;
break;
}
}
*k=j;
}
int main(void)
{
int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;
fun(a, 10, k);
printf(“%d,%d”, k, a[k]);
}
扩展资料:
思路:
1、先定义数组(其数组长度取最大值,题目要求为10),然后通过for循环给数组一个个赋值,即可得到一个数组;
2、找数组的最大值,这一步是最关键的一步,由于所输入的值不确定那个是最大值,故可以先设置另一个一个变量(index)来存储最大值变量的下标。
3、紧接着继续在数组里for循环,逐一跟下标为index的值相比较,如果比下标为index的值大,这时候就将两者中数值大的下标赋值给index。
4、按要求输出。
C语言 编程有一个含有10个元素的一维数组,求其中的最大值。
#include stdio.h
int main()
{
int a[10];
int i;
int max;
for(i = 0; i 10; i ++)
scanf(“%d”,a[i]);
max = a[0];
for(i = 1; i 10; i ++)
if(max a[i]) max = a[i];
printf(“最大值=%d\n”, max);
return 0;
}
C语言 求一维数组中最大值的位置
求出数组长度,设立一个变量imax记录当前最大值的下标;对数组进行遍历比较,总是把最大值的下标赋给imax,遍历完成后imax即为所求位置。
//#include “stdafx.h”//If the vc++6.0, with this line.
#include “stdio.h”
int main(void){
int a[]={1,6,18,19,13,5,2,20,3,4,12,14,15,16,17,7,8,9,10,11},i,imax,ln;
for(ln=sizeof(a)/sizeof(int),i=imax=0;iln;i++)
if(a[imax]a[i])
imax=i;
printf(“The maximum is the subscript of %d elements.\n”,imax);
return 0;
}