利用指针求一组数据中的最大值。 【样例输入】 4 -1 -3 5 6 8 -2 -6 【样例输出】 最大值:8
时间: 2024-02-22 15:56:24 浏览: 50
好的,这是一个比较基础的 C 语言问题。下面是代码实现:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入数据组数:");
scanf("%d", &n);
int arr[n];
printf("请输入数据:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int *p = arr;
int max = *p;
for (int i = 1; i < n; i++) {
if (*(p + i) > max) {
max = *(p + i);
}
}
printf("最大值:%d\n", max);
return 0;
}
```
运行结果:
```
请输入数据组数:8
请输入数据:4 -1 -3 5 6 8 -2 -6
最大值:8
```
相关问题
题目描述 在主函数中读入一组数,编写函数,使用数组名或指针作为函数参数,返回该组数中的最大值。 输入 测试数据有多组,每组单独占一行,第一个数n表示该组数据的个数,后跟n个整数(1≤n≤100),数据之间由空格分隔。 输出 对于每组测试数据,输出结果占一行,为该组数中的最大值。 样例输入 复制 5 56 12 34 85 63 10 2 -4 -3 5 -6 5 6 74 8 20 样例输出 复制 85 74
以下是使用数组名作为函数参数的解法:
```c
#include <stdio.h>
int max(int arr[], int n) {
int max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main() {
int n, arr[100];
while (scanf("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("%d\n", max(arr, n));
}
return 0;
}
```
以下是使用指针作为函数参数的解法:
```c
#include <stdio.h>
int max(int* arr, int n) {
int max = *arr;
for (int i = 1; i < n; i++) {
if (*(arr + i) > max) {
max = *(arr + i);
}
}
return max;
}
int main() {
int n, arr[100];
while (scanf("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("%d\n", max(arr, n));
}
return 0;
}
```
两种解法的区别在于函数参数的类型不同,函数实现方式相同。
7-1 利用指针返回多个函数值 分数 30 作者 陈晓梅 单位 广东外语外贸大学 读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。 输入格式: 输入有两行: 第一行是n值; 第二行是n个数。 输出格式: 输出最大值和最小值。 输入样例: 在这里给出一组输入。例如: 5 8 9 12 0 3
以下是实现max_min()函数的代码:
```
#include <stdio.h>
void max_min(int* arr, int n, int* max, int* min) {
*max = *min = *arr;
for (int i = 1; i < n; i++) {
if (*(arr + i) > *max) {
*max = *(arr + i);
}
if (*(arr + i) < *min) {
*min = *(arr + i);
}
}
}
int main() {
int n, max, min;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", arr + i);
}
max_min(arr, n, &max, &min);
printf("%d %d", max, min);
return 0;
}
```
该程序定义了一个max_min函数,输入参数包括一个整型数组指针arr、数组长度n,以及两个整型指针max和min,用于返回最大值和最小值。在函数中,首先将max和min的初值设为数组第一个元素,然后遍历数组,将每个元素与当前的最大值和最小值进行比较,更新max和min的值。最后,max和min的值通过指针返回到主函数中,并输出。