用c语言指针输入10个浮点数,将其中最小的数与第1个数交换,最大的数与第最后一个数交换。
时间: 2024-03-07 08:46:40 浏览: 57
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
好的,这是一道关于使用指针的C语言编程题目。下面是代码实现:
```c
#include <stdio.h>
void swap(float *a, float *b) {
float temp = *a;
*a = *b;
*b = temp;
}
int main() {
float arr[10];
float *p = arr;
float *min = arr;
float *max = arr;
// 输入10个浮点数
printf("请输入10个浮点数:\n");
for (int i = 0; i < 10; i++) {
scanf("%f", p);
if (*p < *min) {
min = p;
}
if (*p > *max) {
max = p;
}
p++;
}
// 将最小的数与第1个数交换
swap(min, &arr[0]);
// 将最大的数与最后一个数交换
swap(max, &arr[9]);
// 输出交换后的数组
printf("交换后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%f ", arr[i]);
}
return 0;
}
```
在这个代码中,我们首先定义了一个数组 `arr` 和指针 `p`,通过指针 `p` 来输入10个浮点数,并且通过另外两个指针 `min` 和 `max` 分别指向数组中的最小值和最大值。在输入浮点数的过程中,我们判断输入的数是否为最小数或最大数,并且更新指针 `min` 和 `max` 的指向。最后,我们通过 `swap` 函数来交换最小数和第一个数的位置,交换最大数和最后一个数的位置,最终输出交换后的数组。
阅读全文