2.一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9。求一维数组a中的最大 元素及其下标。程序的输出应为:The maxis:34,position is:7。要求:求 最大元素位置用函数实现,在main函数中调用该函数。
以下是用函数实现求一维数组中最大元素及其下标的C语言程序:
#include <stdio.h>
void findMaxElement(int arr[], int size, int* maxElement, int* maxIndex) {
*maxElement = arr[0];
*maxIndex = 0;
for (int i = 1; i < size; i++) {
if (arr[i] > *maxElement) {
*maxElement = arr[i];
*maxIndex = i;
}
}
}
int main() {
int arr[] = {1, 4, 2, 7, 3, 12, 5, 34, 5, 9};
int size = sizeof(arr) / sizeof(arr[0]);
int maxElement, maxIndex;
findMaxElement(arr, size, &maxElement, &maxIndex);
printf("The max element: %d, position is: %d\n", maxElement, maxIndex);
return 0;
}
在上述程序中,findMaxElement
函数用于查找一维数组中的最大元素及其下标。main
函数中调用该函数,并将最大元素和下标保存在 maxElement
和 maxIndex
变量中,最后输出结果。
程序输出为:The max element: 34, position is: 7。这是数组中的最大元素及其下标的结果。
参考如下:
#include <stdio.h>
void max1(int a[], int len, int *max, int *maxI)
{
int i, maxIndex = 0;
for (i = 0; i < len; i++)
{
if (a[maxIndex] < a[i])
maxIndex = i;
}
*max = a[maxIndex];
*maxI = maxIndex;
}
int main ()
{
int a[10] = {1,4,2,7,3,12,5,34,5,9};
int len = sizeof(a) / sizeof(a[0]);
int max;
int maxI;
max1(a, len, &max, &maxI);
printf("The maxis: %d, position is: %d", max, maxI);
return 0;
}
供参考:
#include <stdio.h>
int findmax(int a[], int n)
{
int i, maxi;
for (i = 0, maxi = 0; i < n; i++)
if (a[i] > a[maxi])
maxi = i;
return maxi;
}
int main()
{
int a[] ={1,4,2,7,3,12,5,34,5,9}, pos;
pos = findmax(a, sizeof(a)/sizeof(int));
printf("The maxis:%d,position is:%d",a[pos], pos);
return 0;
}