编写函数fun
请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#define M 4
int fun(int a[])
{
}
int main()
{
int arr = {5, 8, 3, 45, 76, -4, 12, 82};
printf("max = %d\n", fun(arr));
return 0;
} #include <stdio.h>
#define M 4
int fun(int a[])
{
int i=0, *ptemp=(int *)a,temp=a;
for (i=0;i<2*M;i++)
{
if(temp<*ptemp) temp=*ptemp;
ptemp++;
}
return temp;
}
int main()
{
int arr = {5, 8, 3, 45, 76, -4, 12, 82};
printf("max = %d\n", fun(arr));
return 0;
} 本帖最后由 永恒的蓝色梦想 于 2020-6-28 12:17 编辑
#include <stdio.h>
#define M 4
int fun(int a[])
{
int* ptr = *a, max = *ptr++;
for (int count = M << 1; --count; ++ptr) {
if (*ptr > max) {
max = *ptr;
}
}
return max;
}
int main()
{
int arr = { 5, 8, 3, 45, 76, -4, 12, 82 };
printf("max = %d\n", fun(arr));
return 0;
} 永恒的蓝色梦想 发表于 2020-6-28 11:05
感觉你代码有点小问题
#include <stdio.h>
#define M 4
int fun(int a[])
{
int* ptr = *a, max = *ptr++;
for (int count = (M << 1); --count; ++ptr) {//这里左移一位 ,由于 count到0不运行 前面不要减一
if (*ptr > max) {
max = *ptr;
}
}
return max;
}
int main()
{
int arr = { 5, 8, 3, 45, 76, -4, 12, 82 };
printf("max = %d\n", fun(arr));
return 0;
} jhanker 发表于 2020-6-28 11:30
感觉你代码有点小问题
哦……失误
把两个减少循环次数的方法用在一起了…… 永恒的蓝色梦想 发表于 2020-6-28 11:05
M << 2 也有问题应该是M << 1 吧 jhanker 发表于 2020-6-28 12:16
M
今天脑子坏了……
页:
[1]