编写一个函数findmax( ),求数组中最大元素及其下标。调用该函数求整型数组a中的最大元素及其下标。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写一个函数findmax( ),求数组中最大元素及其下标。调用该函数求整型数组a中的最大元素及其下标。相关的知识,希望对你有一定的参考价值。
参考技术A 用C语言吗?#include"stdio.h"
int findmax(int a[10])
int i,max;
max=a[0];
for(i=1;i<10;i++)
if(a[i]>max)
max=a[i];
return max;
void main()
int i,a[10];
printf("please input ten num:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("the max number is:%d\n",findmax(a));
本回答被提问者采纳 参考技术B 回答
您好,欢迎使用百度知道在线1对1咨询服务,我是百度知道答主“重啊平5”,接下来将由我为您解答,很荣幸为您服务,我将认真且仔细对待您的问题,打字和整理资料可能需要几分钟的时间,请您耐心等待哦……
亲,为您查询的相关资料,您可以参考一下哟。int *findmax(int *array,int size,int *index) if (size <= 0) return NULL; int max = array[0]; *index = 0; for (int i = 1; i < size; i++) if (array[i] > max) // 如果大小相同的返回第一个则这么写,若返回最后一个则用>= *index = i; max = array[i]; return &array[*index];这个函数不应该这样定义,应该用返回值返回下标,不用返回指针,根据下标就能得到数组的元素了。既返回指针又返回下标相当于返回了多余的东西。函数设计的要紧凑不要做无谓的事情。
亲,您好很高兴为您解答问题呀希望我的答复能够帮助到您可以给我的服务给个赞哦后期有疑问可以随时提问哦!祝您生活愉快,天天开心!
返回一个二维整数数组中最大子数组的和
设计思路:
首先定义一个四行四列的二维数组
通过两个子函数实现,一个求一维最大子数组和,一个求相应列下标二维元素相加和并作比较
1.通过上次的一位数组求最大值,可以先求出每一行最大连续子数组的和
2.记下上下边界元素的下标
3.每一行都有一个最大子数组,将它对应的相同列下标的元素相加,得到i个子数组和存到一个一维数组b中
4.通过循环比较数组b中元素的大小,找到最大值sum
源代码:
#define M 4
#define N 4
int MAXarr(int m,int n, int array[M][N]);//整合到一维数组
int maxx(int *arr, int len) ;//求最大和
int main()
{
int arr[M][N] = { { -8, 21, 30, 16 }, { 21, 7, -10, 35 }, { 22, 16, 20, -18 }, {12, 75, -9, 6} };
printf( "最大子数组和:");
printf("%d", MAXarr(M, N, arr) );
return 0;
}
int maxx(int *a, int len)
{
int m[100]={0},f=0,x=0;
int Y;
m[x]=0;
while(f<100)
{
if(a[f]>0)
{
m[x]=a[f]+m[x];
f=f+1;
}
else
{
x=x+1;
m[x]=0;
if(a[++f]>0)
{
m[x]=a[f]+m[x];
}
f++;
}
}
Y=m[0];
for(int r=0;r<f;r++)
{
if(m[r]>Y)
{
Y=m[r];
}
r++;
}
return Y;
}
以上是关于编写一个函数findmax( ),求数组中最大元素及其下标。调用该函数求整型数组a中的最大元素及其下标。的主要内容,如果未能解决你的问题,请参考以下文章