运用C语言,指针.编一函数,找出10个数中的最大值,并输出在数中的位置
时间: 2023-12-04 09:03:42 浏览: 162
好的,这是一个使用指针实现的函数,它可以找出 10 个数中的最大值,并输出其在数组中的位置:
```c
#include <stdio.h>
void find_max(int *arr, int len) {
int max_num = *arr;
int max_index = 0;
for (int i = 1; i < len; i++) {
if (*(arr + i) > max_num) {
max_num = *(arr + i);
max_index = i;
}
}
printf("最大值为 %d,在数列中的位置为 %d\n", max_num, max_index);
}
int main() {
int arr[10] = {2, 4, 6, 8, 10, 9, 7, 5, 3, 1};
find_max(arr, 10);
return 0;
}
```
在这个程序中,我们定义了一个 `find_max` 函数,它接受一个整数指针 `arr` 和数组的长度 `len` 作为参数。函数中使用一个循环遍历数组,找出最大值和它在数组中的位置,并用 `printf` 函数输出结果。在 `main` 函数中,我们定义了一个包含 10 个数字的数组,然后将其作为指针传递给 `find_max` 函数来查找其中的最大值。
输出结果为:
```
最大值为 10,在数列中的位置为 4
```
希望能对你有所帮助!
相关问题
用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函数打印最大值和最小值。
c语言 通过函数fun使用指针计算并返回数组最大值的位置。在主函数中输出最大值及其位置
可以使用如下的代码实现:
```c
#include <stdio.h>
int *fun(int arr[], int n) {
int max_index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
}
return &arr[max_index];
}
int main() {
int arr[] = {3, 8, 2, 5, 1, 7, 9, 4, 6};
int n = sizeof(arr) / sizeof(int);
int *max_ptr = fun(arr, n);
printf("最大值为:%d,位置为:%ld\n", *max_ptr, max_ptr - arr);
return 0;
}
```
首先,在 `fun` 函数中通过循环遍历整个数组,找到最大值的位置,然后返回该位置对应的指针。
在主函数中,调用 `fun` 函数得到最大值的指针,再通过指针减去数组首地址得到最大值的位置,最后输出即可。