F3 查找数组元素最大值 (10分)
本题要求实现一个函数,查找数组中最大元素的下标。例如数组为{1,3,5,7,9},则该函数应该返回4。题目输入保证数组元素各不相同。
函数接口定义:
int indexOfMax(int *array, int size);
其中 array 和 size 是用户传入的参数。 array 是数组首地址; size 是数组元素的个数。函数须返回数组中最大元素的下标(从0开始)。
裁判测试程序样例:
/* 此测试程序仅为示例,实际的测试程序可能不同 */
#define MAXSIZE 100
int indexOfMax(int *array, int size);
int main(){
int num[MAXSIZE];
int total;
scanf("%d",&total);
for(int i=0; i<total; i++) scanf("%d",&num[i]);
printf("%d\n",num[indexOfMax(num,total)]);
return 0;
}
/* 你所编写的函数代码将被嵌在这里 */
输入样例:
4 2016 2017 1999 1998
int max=array[0],indexOfMax = 0;
int i;
for(i=1;i<size;i++) {
if(array[i] > max)
}
max = array[i];
indexOfMax = i;
}
} return indexOfMax;
}
觉得这道题简单 ,但是开始没看清题 需要返回数组下标 值得注意的是返回的indexOfMax
F4 数组逆转 (10分)
本题要求实现一个函数,可将一个整型数组里的元素逆转。例如原数组是[1,3,5,7,9],逆转之后变成[9,7,5,3,1]
函数接口定义:
void reverse(int *array, int size);
其中参数 array是数组首地址,size是数组的长度(size>0)。
这道题有两种方法 1申请另一个数组空间进行输出
2 在此空间进行
void reverse(int *array, int size){
int temp=0;
for(int i =0;i<size/2;i++){
temp=array[i];
array[i]=array[size-1-i];
array[size-1-i]=temp;
}
}
if(size<2) return ;
else
{
int a[size];
int i;
for(i=0;i<size;i++)
a[i]=array[size-1-i];
for(i=0;i<size;i++)
array[i] = a[i] ;
}
```
这篇博客介绍了如何用C语言实现两个函数:查找数组中最大元素的下标和逆转数组。第一个函数indexOfMax接收数组首地址和大小,返回最大元素的下标;第二个函数reverse接收数组首地址和大小,原地逆转数组元素。文章提供样例输入和注意事项,适合初学者练习。

3859

被折叠的 条评论
为什么被折叠?



