用指针求输入一个一维数组中元素的最大值
时间: 2024-05-04 19:19:54 浏览: 24
可以通过循环遍历数组,将第一个元素设为最大值,然后依次比较后面的元素,如果有比当前最大值更大的元素,则更新最大值。使用指针可以减小数据复制的开销,代码如下:
```c
#include <stdio.h>
int max(int *arr, int n) {
int *p = arr; // 将指针指向数组第一个元素
int m = *p; // 将第一个元素设为最大值
for(int i=0; i<n; i++) {
if(*(p+i) > m) { // 比较当前元素和最大值
m = *(p+i); // 更新最大值
}
}
return m; // 返回最大值
}
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int n = sizeof(arr) / sizeof(int);
int m = max(arr, n);
printf("Max value: %d\n", m);
return 0;
}
```
输出结果为:
```
Max value: 9
```
相关问题
C语言:输入十个整数 求一维数组中元素的最大值,用指针来写
好的,我可以为您解答这个问题。
您可以采用以下代码来通过指针来解决这个问题:
```C
#include <stdio.h>
void findMax(int *arr, int n) {
int max = *arr;
for (int i = 1; i < n; i++) {
if (*(arr + i) > max) {
max = *(arr + i);
}
}
printf("数组中的最大值是:%d", max);
}
int main() {
int arr[10];
printf("请输入十个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 调用函数来查找数组中的最大值
findMax(arr, 10);
return 0;
}
```
这个代码中,我们定义了一个 `findMax` 函数,它接收一个数组和数组的长度作为参数,然后通过循环遍历数组来找到其中的最大值。在主函数中,我们首先先读取十个整数,并将它们存储到一个数组中,然后调用 `findMax` 函数来查找这个数组中的最大值,最后输出这个最大值。
希望这个代码对您有所帮助!
用指针求二维数组中最大值的行标和列标
好的,针对您的问题,我来给您讲解一下如何用指针求二维数组中最大值的行标和列标。
假设有一个二维数组`int arr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};`,我们要找到其中的最大值及其所在的行标和列标。
我们可以定义三个指针变量,分别指向二维数组中的最大值、最大值所在的行、最大值所在的列。具体实现如下:
```c
int *p = &arr[0][0]; // 指向数组第一个元素
int *max = p; // 指向最大值
int *row = p; // 指向最大值所在的行
int *col = p; // 指向最大值所在的列
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 4; j++) {
if(*max < *(p + i * 4 + j)) { // 找到更大的值
max = p + i * 4 + j; // 更新最大值指针
row = p + i * 4; // 更新最大值所在的行指针
col = p + j; // 更新最大值所在的列指针
}
}
}
printf("最大值:%d\n", *max);
printf("最大值所在的行:%d\n", row - p);
printf("最大值所在的列:%d\n", col - p);
```
其中,`*(p + i * 4 + j)` 表示二维数组中第 `i` 行第 `j` 列的元素,`row - p` 和 `col - p` 分别表示行和列在二维数组中的下标。
希望能对您有所帮助!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)