C语言运用指针操作在主函数中输入5个整数,调用函数输入其中最小值及所在下标
时间: 2024-02-15 16:03:54 浏览: 61
好的,可以使用指针来实现这个功能。下面是代码示例:
```c
#include <stdio.h>
void find_min(int *arr, int size, int *min, int *index) {
*min = arr[0];
*index = 0;
for (int i = 1; i < size; i++) {
if (arr[i] < *min) {
*min = arr[i];
*index = i;
}
}
}
int main() {
int arr[5];
printf("请输入5个整数:\n");
for (int i = 0; i < 5; i++) {
scanf("%d", &arr[i]);
}
int min, index;
find_min(arr, 5, &min, &index);
printf("最小值为 %d,下标为 %d\n", min, index);
return 0;
}
```
在 `find_min` 函数中,使用指针参数来获取最小值和对应下标的值。在主函数中,先输入整数数组,然后调用 `find_min` 函数,获取最小值和下标,最后输出结果。
相关问题
编写一个函数统计一维整数数组中的最小值和最小值下标。在主函数中输入数组的10个元素,调用该函数,输出结果。
可以使用如下的C语言代码实现:
```c
#include <stdio.h>
void find_min(int arr[], int n, int *min, int *min_index) {
*min = arr[0]; // 假设第一个元素为最小值
*min_index = 0; // 假设第一个元素为最小值的下标
for (int i = 1; i < n; i++) {
if (arr[i] < *min) {
*min = arr[i]; // 更新最小值
*min_index = i; // 更新最小值的下标
}
}
}
int main() {
int arr[10], min, min_index;
printf("请输入数组的10个元素:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
find_min(arr, 10, &min, &min_index); // 调用自定义函数
printf("数组中的最小值为:%d,下标为:%d\n", min, min_index);
return 0;
}
```
在上面的代码中,我们定义了一个自定义函数`find_min()`,该函数接收一个整数数组`arr`、数组的长度`n`,以及两个指针变量`min`和`min_index`,用于存储数组中的最小值和最小值的下标。在函数中,我们首先假设第一个元素为最小值,并将其值和下标存储在指针变量`min`和`min_index`中。然后,使用`for`循环遍历整个数组,如果发现比当前最小值更小的元素,就更新最小值和最小值的下标。最后,我们在主函数中调用自定义函数`find_min()`,并输出最小值和最小值的下标。
运用C语言指针方法处理,在主函数实现输入 10 个整数,将其中最小的数与第一个数对换,把最大的数与最后一个对换。
好的,这个问题可以通过以下的代码实现:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
int main() {
int arr[10];
int min = 0, max = 0;
// 输入 10 个整数
printf("请输入 10 个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 查找最小值和最大值的下标
for (int i = 1; i < 10; i++) {
if (arr[i] < arr[min]) {
min = i;
}
if (arr[i] > arr[max]) {
max = i;
}
}
// 将最小值与第一个数对换
swap(&arr[0], &arr[min]);
// 将最大值与最后一个数对换
swap(&arr[9], &arr[max]);
// 输出交换后的数组
printf("交换后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这里定义了一个 `swap` 函数,用于交换两个变量的值。在主函数中,首先输入 10 个整数,并查找其中最小值和最大值的下标。然后调用 `swap` 函数将最小值与第一个数对换,将最大值与最后一个数对换,最后输出交换后的数组。
阅读全文