📅  最后修改于: 2023-12-03 14:59:38.427000             🧑  作者: Mango
在C语言中,指针是一种非常重要的数据类型。指针变量保存的是一个地址,该地址指向内存中的一个数据,可以通过指针来操作这个数据。本文将介绍指针基础问题14。
给定一个整数型的一维数组,要求使用指针的方式交换数组中最大和最小两个元素的位置,输出交换后的结果。
首先,我们需要找到数组中的最大和最小值,并记录它们的下标。可以定义两个指针变量分别指向数组的第一个元素,然后使用循环遍历整个数组,比较数组中的元素大小,更新指针变量。
int *max, *min;
max = min = a;
for (i = 0; i < n; ++i) {
if (*max < a[i]) {
max = &a[i];
}
if (*min > a[i]) {
min = &a[i];
}
}
接下来,我们可以使用指针的方式交换最大和最小元素的位置。
int temp = *max;
*max = *min;
*min = temp;
最后,我们可以输出交换后的结果。
for (i = 0; i < n; ++i) {
printf("%d ", a[i]);
}
printf("\n");
#include <stdio.h>
int main() {
int n, i;
int a[100];
int *max, *min;
scanf("%d", &n);
for (i = 0; i < n; ++i) {
scanf("%d", &a[i]);
}
max = min = a;
for (i = 0; i < n; ++i) {
if (*max < a[i]) {
max = &a[i];
}
if (*min > a[i]) {
min = &a[i];
}
}
int temp = *max;
*max = *min;
*min = temp;
for (i = 0; i < n; ++i) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
以上就是指针基础问题14的解决方法,希望能对读者有所帮助。