【求助】C语言用函数实现求一维数组的最大值,要求在主程序调用

我什么都布吉岛丶 2020-06-07 10:46:54
头秃,我想了好久没出来,找不到人求助,发个帖求帮忙,难受,我自己写出来运行没啥,就是求大小求最大值很懵希望大侠评论区帮帮忙
...全文
2000 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 5 楼 自信男孩的回复:
int calculate(int x[], int len)
{
int max = a[0];
for(int i=1;i<len;i++)
{
if(max < a[i])
{
max = a[i];
}
}
return max;
}

供参考~
#include<stdio.h> int calculate(int x[],int len) { int max = x[0]; for(int n=1;n<len;n++) { if(max < x[n]) { max = x[n]; } } return max; } int main() { float a[5],max; int i; printf("请输入5个数:\n"); scanf("%d",&i); max=calculate(a,i); printf("%f",max); return 0; }
  • 打赏
  • 举报
回复
能帮忙看看下面这个问题吗,我按你说的写了,就是输出结果不准确
自信男孩 2020-06-10
  • 打赏
  • 举报
回复
int calculate(int x[], int len)
{
int max = a[0];
for(int i=1;i<len;i++)
{
if(max < a[i])
{
max = a[i];
}
}
return max;
}

供参考~
自信男孩 2020-06-10
  • 打赏
  • 举报
回复
引用 2 楼 WhiteCCai 的回复:
只求最大值一个for循环就够了

int calculate(int x[5])
{
int max = 0;
for(int i=0;i<5;i++)
{
if(max < a[i])
{
max = a[i];
}
}
return max;
}


这个代码有bug,是否考虑到了当该一维数组里的元素都是负数时,最大值岂不是0了?还符合程序要求吗?
自信男孩 2020-06-10
  • 打赏
  • 举报
回复
引用 1 楼 xws245925587 的回复:
int calc_max_val(int *_array , int _array_len)
{
int max = 0;
if (_array == NULL || _array_len == 0)
return 0;
for (int i = 0 ; i < _array_len; i++)
{
if (max <= _array[i])
max = _array[i];
}

return max;
}

int main(void)
{
// int array[] = {1,2,0,5,6,77,88,99,-1};
int array[] = { -1,-2,0,-5,-6,-77,-88,-99,5894848 };
int max = calc_max_val(array,sizeof(array)/sizeof(array[0]));
printf("array's max value %d\r\n", max);
system("pause");
return 0;
}


这个代码有bug,是否考虑到了当该一维数组里的元素都是负数时,最大值岂不是0了?还符合程序要求吗?
  • 打赏
  • 举报
回复
只求最大值一个for循环就够了 int calculate(int x[5]) { int max = 0; for(int i=0;i<5;i++) { if(max < a[i]) { max = a[i]; } } return max; }
xws245925587 2020-06-10
  • 打赏
  • 举报
回复
引用 3 楼 自信男孩 的回复:
[quote=引用 1 楼 xws245925587 的回复:] int calc_max_val(int *_array , int _array_len) { int max = 0; if (_array == NULL || _array_len == 0) return 0; for (int i = 0 ; i < _array_len; i++) { if (max <= _array[i]) max = _array[i]; } return max; } int main(void) { // int array[] = {1,2,0,5,6,77,88,99,-1}; int array[] = { -1,-2,0,-5,-6,-77,-88,-99,5894848 }; int max = calc_max_val(array,sizeof(array)/sizeof(array[0])); printf("array's max value %d\r\n", max); system("pause"); return 0; }
这个代码有bug,是否考虑到了当该一维数组里的元素都是负数时,最大值岂不是0了?还符合程序要求吗?[/quote] 是的,有bug,进来max的值取数组其中一个元素的值就好了
xws245925587 2020-06-09
  • 打赏
  • 举报
回复
int calc_max_val(int *_array , int _array_len)
{
int max = 0;
if (_array == NULL || _array_len == 0)
return 0;
for (int i = 0 ; i < _array_len; i++)
{
if (max <= _array[i])
max = _array[i];
}

return max;
}

int main(void)
{
// int array[] = {1,2,0,5,6,77,88,99,-1};
int array[] = { -1,-2,0,-5,-6,-77,-88,-99,5894848 };
int max = calc_max_val(array,sizeof(array)/sizeof(array[0]));
printf("array's max value %d\r\n", max);
system("pause");
return 0;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧