怎么用C语言在数组中找到最大值?

Python012

怎么用C语言在数组中找到最大值?,第1张

#include <stdio.h>int main(void){int i,num[10]={0,5,2,18,3,6,15,10,1,7},*p=num for(i=1i<10i++)if(num[i]>*p)p=&num[i] printf("最大值是:%d\n",*p) return 0}

C语言程序如下:

#include <stdio.h>

void fun(int a[],int n,int *k)

{

int i,maxxr,j

maxxr=a[0]

for(i=0i<ni++)

{

if(maxxr<a[i])

{

maxxr=a[i]

}

}

for(i=0i<ni++)

{

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语言数组最大的大小没有限制,因为它用的是 虚拟存储。

对于写程序而言,例如要写下标,那么受 unsigned int 最大值的限制,只能用到十六进制 0xffffffff, 十进制4G多一点。

具体程序能获取多大,就很难说,有时编译可以通过,运行时出错。你也可以用 malloc 动态分配请求,看分配是否成功或失败。

对一般程序而言,数组长度通常够用了。