c语言定义一个数组a[5],定义两个指针变量min和max,分别指向数组中的最小值和最大值,并将最小值和a[0],最大值和a[4]互换,输出新的数组a
时间: 2024-01-14 07:03:04 浏览: 22
好的,根据您的要求,以下是C语言实现:
```c
#include <stdio.h>
int main() {
int a[5] = {5, 2, 8, 3, 9}; // 定义一个数组a[5]
int min = 0, max = 0;
for (int i = 0; i < 5; i++) { // 遍历数组找到最小值和最大值的索引
if (a[i] < a[min]) {
min = i;
}
if (a[i] > a[max]) {
max = i;
}
}
int temp = a[0]; // 定义一个临时变量用于交换
a[0] = a[min]; // 将最小值和a[0]互换
a[min] = temp;
temp = a[4];
a[4] = a[max]; // 将最大值和a[4]互换
a[max] = temp;
for (int i = 0; i < 5; i++) { // 输出新的数组a
printf("%d ", a[i]);
}
return 0;
}
```
输出结果为:9 2 8 3 5
相关问题
C语言,从键盘输入20个数,存入一个数组中,用指针变量做函数参数,求最大值和最小值。
好的,以下是C语言程序的实现方法:
```c
#include <stdio.h>
void findMinMax(int *arr, int size, int *min, int *max) {
*min = *max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < *min) {
*min = arr[i];
}
if (arr[i] > *max) {
*max = arr[i];
}
}
}
int main() {
int arr[20], min, max;
printf("请输入20个数:\n");
for (int i = 0; i < 20; i++) {
scanf("%d", &arr[i]);
}
findMinMax(arr, 20, &min, &max);
printf("最小值:%d\n", min);
printf("最大值:%d\n", max);
return 0;
}
```
在这个程序中,`findMinMax()`函数用于查找最小值和最大值。它接收一个整数数组的指针、数组大小、最小值指针和最大值指针作为参数。函数使用指针间接修改最小值和最大值的值。在`main()`函数中,首先从键盘输入20个数,然后调用`findMinMax()`函数查找最小值和最大值,并将结果打印出来。
用C语言定义一个函数找出十个数字的最大值和最小值
可以使用以下代码定义一个函数来找到10个数字的最大值和最小值:
```c
#include <stdio.h>
void findMaxMin(int arr[], int n, int *pMax, int *pMin) {
*pMax = arr[0];
*pMin = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > *pMax) {
*pMax = arr[i];
}
if (arr[i] < *pMin) {
*pMin = arr[i];
}
}
}
int main() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int max, min;
findMaxMin(arr, 10, &max, &min);
printf("Max: %d, Min: %d\n", max, min);
return 0;
}
```
这个函数接受一个数组和数组的长度作为参数,还接受两个指向int类型变量的指针。函数使用指针来修改最大值和最小值的值,而不是返回它们作为函数的返回值。在main函数中,我们传递数组和数组的长度,以及两个指向最大值和最小值变量的指针。我们使用printf函数打印最大值和最小值。