Point.m
void assignArr(int *p, int count) {
for (int i = 0; i < count; i++) {
*(p + i) = arc4random() % 100;
}
}//为数组赋0~99的随机值
void outputArr(int *p, int count) {
for (int i = 0; i < count; i++) {
printf("%d ", *(p + i));
}
}//输出数组中的元素
int findMaxIndexOfArr(int *p, int count) {
int maxIndex = 0;//假设第一个元素为最大的元素的下标
for (int i = 0; i < count; i++) {
if (*(p + maxIndex) < *(p + i)) {
maxIndex = i;
}
}
return maxIndex;
}//找到数组中的最大元素的下标
int findMinIndexOfArr(int *p, int count) {
int minIndex = 0;//假设第一个元素为最小的元素的下标
for (int i = 0; i < count; i++) {
if (*(p + minIndex) > *(p + i)) {
minIndex = i;
}
}
return minIndex;
}//找到数组中最小元素的下标
void exchangeArr(int *p, int count) {
int temp = 0, maxIndex = 0, minIndex = 0;
maxIndex = findMaxIndexOfArr(p, count);//得到最大元素的下标
minIndex = findMinIndexOfArr(p, count);//得到最小元素的下标
//测试代码 printf("maxIndex = %d minIndex = %d\n", maxIndex, minIndex);
//将其中最小的数与第一个数对换
temp = *p;
*p = *(p + minIndex);
*(p + minIndex) = temp;
//把最大的数和最后一个数对换
temp = *(p + count - 1);
*(p + count - 1) = *(p + maxIndex);
*(p + maxIndex) = temp;
main.m
int a[10] = {0};
assignArr(a, 10);
outputArr(a, 10);
printf("\n");
exchangeArr(a, 10);
outputArr(a, 10);
printf("\n");
}//将其中最小的数与第一个数对换,把最大的数和最后一个数对换