我需要使用指针查找并打印数组中最高值的索引。我的教授说可以只使用下面定义的整数(没有计数器或其他贵重物品)。
#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);
}
答案 0 :(得分:1)
如果有人绊倒我,我会回答我自己的问题。感谢Weather Vayne。
确定数组中的最大值后,您可以找到如下索引:
printf("%d", MAX - array);
索引显示从0到n-1的位置,因此您可以添加+1以使其显示从1到n的位置(n是数组中元素的数量):
printf("%d", MAX - array + 1);