用指针实现,输入6个整数,把最小数与第1个数交换,最大数与最后1个数交换,其它数据不动。输入保证最大值和最小值唯一。请编写3个函数:(1)输入6个数;(2)进行处理函数;(2)输出6个数,每个数占3个宽度,左对齐。
时间: 2024-05-09 08:15:20 浏览: 57
利用指针将最小数与第一个数调换,最大数与最后一个数对换(C语言练习例程)
5星 · 资源好评率100%
下面是使用指针实现的代码:
```c++
#include <iostream>
using namespace std;
void input(int* arr) {
cout << "请输入6个整数:";
for (int i = 0; i < 6; i++) {
cin >> *(arr + i);
}
}
void process(int* arr) {
int* max = arr;
int* min = arr;
for (int* p = arr; p < arr + 6; p++) {
if (*p > *max) {
max = p;
}
if (*p < *min) {
min = p;
}
}
int temp = *arr;
*arr = *min;
*min = temp;
temp = *(arr + 5);
*(arr + 5) = *max;
*max = temp;
}
void output(int* arr) {
cout << "处理后的6个数为:";
for (int i = 0; i < 6; i++) {
cout.width(3);
cout << left << *(arr + i);
}
}
int main() {
int arr[6];
input(arr);
process(arr);
output(arr);
return 0;
}
```
程序首先通过 `input` 函数输入6个整数,并使用指针将它们存储在数组 `arr` 中。然后,通过 `process` 函数找出最小数和最大数,并将它们与数组的第一个数和最后一个数交换。最后,通过 `output` 函数输出处理后的6个数。程序使用 `left` 标志来指定左对齐输出,使用 `width(3)` 来指定每个数占3个宽度。
阅读全文