用c语言编程实现输入8个整数存入一维数组,将其中最大数与第一个数交换,最小数与最后一个数交换(用指针完成)
时间: 2023-03-05 20:57:27 浏览: 255
C语言第07章-一维数组和二维数组1完整.pptx
以下是用 C 语言编程实现输入 8 个整数存入一维数组,将其中最大数与第一个数交换,最小数与最后一个数交换的示例代码,使用指针完成:
```
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[8];
int i;
int *max, *min;
printf("请输入8个整数:\n");
for (i = 0; i < 8; i++) {
scanf("%d", &arr[i]);
}
max = &arr[0];
min = &arr[7];
for (i = 1; i < 8; i++) {
if (*max < arr[i]) {
max = &arr[i];
}
if (*min > arr[i]) {
min = &arr[i];
}
}
swap(&arr[0], max);
swap(&arr[7], min);
printf("交换后的数组为:\n");
for (i = 0; i < 8; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在程序中,首先定义一个包含 8 个整数的数组 `arr`,然后用 `scanf` 函数让用户输入这 8 个整数,并将它们存储到数组中。
接下来,定义两个指向整数的指针 `max` 和 `min`,并将它们分别指向数组中的第一个元素和最后一个元素。然后,用一个循环遍历整个数组,如果找到了比 `max` 指向的元素更大的元素,就将 `max` 指向该元素,如果找到了比 `min` 指向的元素更小的元素,就将 `min` 指向该元素。
最后,调用 `swap` 函数,将最大数与第一个数交换,将最小数与最后一个数交换。最后,使用循环遍历输出交换后的数组。
需要注意的是,在 `swap` 函数中,使用了指针来交换两个整数的值。指针是一种特殊的变量,它存储了一个内存地址,可以通过这个地址访问和修改变量的值。在本程序中,`a` 和 `b` 分别是指向两个整数的指针,我们可以通过 `*a` 和 `*b` 来访问和修改它们所指向的变量的值。
阅读全文