C语言:输入十个整数 求一维数组中元素的最大值,用指针来写
时间: 2024-05-12 16:17:44 浏览: 147
好的,我可以为您解答这个问题。
您可以采用以下代码来通过指针来解决这个问题:
```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` 函数来查找这个数组中的最大值,最后输出这个最大值。
希望这个代码对您有所帮助!
相关问题
c语言:输入10个元素保存于整型一维数组a[10]中(系统保证最大值和最小值都只有唯一一个),将数组中最大值与最小值的位置互换后输出,用指针实现。
好的,这个问题非常适合我回答。以下是用指针实现的 c 语言代码:
```c
#include <stdio.h>
int main() {
int a[10];
int max = 0, min = 0;
printf("请输入10个整数:\n");
// 读入10个整数
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
// 寻找最大值和最小值
for (int i = 0; i < 10; i++) {
if (a[i] > a[max]) {
max = i;
}
if (a[i] < a[min]) {
min = i;
}
}
// 交换最大值和最小值
int temp = a[max];
a[max] = a[min];
a[min] = temp;
// 输出数组
printf("交换后的数组:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,我们定义了一个一维数组 `a`,然后通过 for 循环读入 10 个整数。接着,我们再通过 for 循环寻找数组中的最大值和最小值。一旦找到了它们,我们就用一个中间变量 `temp` 来交换它们的位置。最后,我们再用另一个 for 循环输出交换后的数组。
希望这个程序能够帮到你。如果还有什么问题,请随时提出来。
用C语言指针写一个max函数求一个二维数组所有元素的最大值
在C语言中,你可以使用指针来遍历二维数组并找到最大值。这里是一个简单的示例,假设我们有一个二维整数数组`arr`,其行数由`rows`指定,列数由`cols`指定:
```c
#include <stdio.h>
// 定义一个函数接受二维数组的指针、行数和列数
int findMax(int (*arr)[cols], int rows, int cols) {
// 初始化最大值为数组的第一个元素
int max = arr[0][0];
// 使用指针遍历数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
// 如果当前元素大于已知的最大值,更新最大值
if (arr[i][j] > max) {
max = arr[i][j];
}
}
}
return max;
}
int main() {
// 示例二维数组
const int rows = 3;
const int cols = 4;
int arr[rows][cols] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
// 找到并打印最大值
int max_value = findMax(arr, rows, cols);
printf("二维数组中的最大值是:%d\n", max_value);
return 0;
}
```
在这个例子中,`findMax`函数接收一个指向二维数组首元素的指针,并通过嵌套循环遍历整个数组。当遇到更大的元素时,它会更新`max`的值。
阅读全文