C语言指针实现最小值与第一个数、最大值与最后一个数交换
#include <stdio.h>
int main()
{
printf("请输入十个整数:");
int num[10];
int* pMin, * pMax, * pTemp;
int* p = num; // 指向数组第一个元素的指针
pMin = pMax = p; // 初始化最小和最大值指针
int i;
// 输入十个整数
for (i = 0; i < 10; i++, p++) {
scanf("%d", p);//p为地址,类似于&num[i]
}
// 寻找最小和最大值的指针
p = num; // 重置指针到数组的开始
for (i = 1; i < 10; i++, p++) {
if (*p < *pMin) {
pMin = p;
}
if (*p > *pMax) {
pMax = p;
}
}
// 将最小值与第一个元素交换
pTemp = num; // 重置指针到数组的开始
if (pMin != pTemp) { // 检查最小值指针是否指向第一个元素
int temp = *pMin;
*pMin = *pTemp;
*pTemp = temp;
}
// 将最大值与最后一个元素交换
p = &num[9]; // 指向数组最后一个元素的指针
if (pMax != p) { // 检查最大值指针是否指向最后一个元素
int temp = *pMax;
*pMax = *p;
*p = temp;
}
// 打印交换后的数组
p = num; // 重置指针到数组的开始
for (i = 0; i < 10; i++, p++) {
printf("%d ", *p); // 打印指针指向的值
}
printf("\n");
return 0;
}
标签:int,作业,C语言,pMin,++,num,课后,pMax,指针
From: https://blog.csdn.net/yang_upup/article/details/144174424