使用数组和指针,求出手工输入十个数中最大值和最小值。
时间: 2023-04-07 21:03:28 浏览: 159
可以回答这个问题。可以使用循环和条件语句来遍历数组,找出最大值和最小值。具体实现可以参考以下代码:
```c
#include <stdio.h>
int main() {
int nums[10];
int i, max, min;
// 手工输入十个数
printf("请输入十个数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
}
// 初始化最大值和最小值
max = nums[0];
min = nums[0];
// 遍历数组,找出最大值和最小值
for (i = 1; i < 10; i++) {
if (nums[i] > max) {
max = nums[i];
}
if (nums[i] < min) {
min = nums[i];
}
}
// 输出结果
printf("最大值为:%d\n", max);
printf("最小值为:%d\n", min);
return 0;
}
```
相关问题
用指针法访问数组元素,求出十个数中的最大值
好的,以下是用指针法访问数组元素求出十个数中的最大值的代码:
```c
#include <stdio.h>
int main() {
int nums[10];
int max = 0;
printf("请输入十个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", nums + i);
if (*(nums + i) > * (nums + max)) {
max = i;
}
}
printf("十个数中的最大值是:%d\n", *(nums + max));
return 0;
}
```
在这段代码中,我们同样定义了一个长度为 10 的整型数组 `nums`,用来存放输入的十个整数。不同的是,我们使用了指针法访问数组元素,即使用 `nums + i` 来代替 `&nums[i]`,使用 `*(nums + i)` 来代替 `nums[i]`。
在输入的同时查找最大值的下标时,我们同样使用了指针,即使用 `*(nums + i)` 来代替 `nums[i]`,使用 `*(nums + max)` 来代替 `nums[max]`。
最后,我们输出这个最大值即可。
使用指针作为函数参数,写一求数组中最大值和最小值的函数
可以使用指针作为函数参数来写一个函数,用来求解数组中的最大值和最小值。具体实现方法如下:
```c
void findMinMax(int *arr, int size, int *max, int *min) {
*max = *min = arr[]; // 初始化最大值和最小值为数组的第一个元素
for (int i = 1; i < size; i++) {
if (arr[i] > *max) {
*max = arr[i]; // 更新最大值
}
if (arr[i] < *min) {
*min = arr[i]; // 更新最小值
}
}
}
```
这个函数接受四个参数,分别是指向数组首元素的指针 `arr`、数组的大小 `size`、指向最大值的指针 `max` 和指向最小值的指针 `min`。函数内部使用循环遍历数组,找到最大值和最小值,并将它们存储到 `max` 和 `min` 指向的内存地址中。
使用这个函数的示例代码如下:
```c
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int size = sizeof(arr) / sizeof(arr[]);
int max, min;
findMinMax(arr, size, &max, &min);
printf("max=%d, min=%d\n", max, min);
return ;
}
```
这个示例代码首先定义了一个整型数组 `arr`,然后计算出数组的大小 `size`。接着定义了两个整型变量 `max` 和 `min`,并将它们的地址传递给 `findMinMax` 函数。最后打印出最大值和最小值。