如何使用C中的指针在数组中查找/打印最大值的索引

时间:2016-10-11 19:52:20

标签: c arrays pointers

我需要使用指针查找并打印数组中最高值的索引。我的教授说可以只使用下面定义的整数(没有计数器或其他贵重物品)。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int array[100], size, *MAX, *pi;
srand(time(NULL));
MAX = array;

printf("Insert array size:\n");
scanf("%d", &size);

for(pi=array; pi<array+size; pi++)
{
    *pi = ( rand()%100 ) + 1;
}

printf("\nArray elements:\n");
for(pi=array; pi<array+size; pi++)
    printf("%d\t", *pi);

for(pi=array+1; pi<array+size; pi++)
    if(*pi>*MAX)
{
    MAX = pi;
}

printf("\n\nMax is %d.", *MAX);
}

1 个答案:

答案 0 :(得分:1)

如果有人绊倒我,我会回答我自己的问题。感谢Weather Vayne。

确定数组中的最大值后,您可以找到如下索引:

printf("%d", MAX - array);

索引显示从0到n-1的位置,因此您可以添加+1以使其显示从1到n的位置(n是数组中元素的数量):

printf("%d", MAX - array + 1);