c语言 实验8-1-1 使用函数找出数组中的最大值 (15 分) 题目描述 本题要求实现一个找出整型数组中最大值的函数。 主函数参考如下: #include <stdio.h> #define 最大 10 int FindArrayMax( int a[], int n ); int main() { int i, n; int a[MAXN]; scanf(“%d”, &n); for( i=0; i<n; i++ ){ scanf(“%d”, &a[i]); } printf("%d\n", FindArrayMax(a, n);); 返回 0; } /* 请在这里填写答案 */
时间: 2024-01-28 20:05:37 浏览: 42
以下是 C 语言实验8-1-1的完整代码,可以直接在 C 语言编译器中运行:
```c
#include <stdio.h>
#define MAXN 10
int FindArrayMax(int a[], int n);
int main(void) {
int i, n;
int a[MAXN];
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("%d\n", FindArrayMax(a, n));
return 0;
}
int FindArrayMax(int a[], int n) {
int i, max = a[0];
for (i = 1; i < n; i++) {
if (a[i] > max) {
max = a[i];
}
}
return max;
}
```
在这个程序中,主函数通过 `scanf` 函数读入数组 `a` 的元素个数 `n` 和元素值,然后调用 `FindArrayMax` 函数找出数组中的最大值,并将结果输出。`FindArrayMax` 函数接收两个参数,分别是整型数组 `a` 和数组长度 `n`,函数内部通过循环遍历数组,找出数组中的最大值并将其返回。初始时,假设数组第一个元素为最大值,然后依次比较后面的元素,如果有更大的,则更新最大值。最后返回最大值即可。
相关问题
C语言8. 从键盘输入5个整数,保存于数组中。编程找出其中最大值和最小值,把二者位置对调,然后输出调整后的数组。要求:使用自定义函数实现对调。
好的,这是一个比较常见的 C 语言编程题目,下面是解题思路和代码实现。
首先,我们需要定义一个数组来存储输入的 5 个整数,然后遍历数组找出其中的最大值和最小值,接着使用自定义函数实现对调,最后输出调整后的数组。
下面是完整的代码实现:
```c
#include <stdio.h>
// 自定义函数 swap,用于交换两个元素的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[5];
// 从键盘输入 5 个整数,保存于数组中
printf("请输入 5 个整数:\n");
for (int i = 0; i < 5; i++) {
scanf("%d", &arr[i]);
}
// 找出数组中的最大值和最小值
int max_index = 0, min_index = 0;
for (int i = 1; i < 5; i++) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
// 对调最大值和最小值的位置
swap(&arr[max_index], &arr[min_index]);
// 输出调整后的数组
printf("调整后的数组为:\n");
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行结果示例:
```
请输入 5 个整数:
3 5 2 8 1
调整后的数组为:
3 1 2 8 5
```
这样,我们就完成了这道 C 语言编程题目。
编写一程序,从一个3行4列二维数组中找出每行的最大数及所在的行和列,并将最大值及所在行列值打印出来。要求将查找和打印的功能编一个函数,二维数组的输入在主函数中进行,并将二维数组通过指针参数传递的方式由主函数传到子函数。用c语言实现
好的,以下是使用 C 语言编写的程序,实现了对输入的二维数组进行遍历,找出每行的最大数及其所在的位置,并将最大值及其行列值打印出来。
```c
#include <stdio.h>
void findMax(int (*arr)[4], int row, int col) {
for(int i = 0; i < row; i++) {
int max = arr[i][0];
int maxRow = i, maxCol = 0;
for(int j = 1; j < col; j++) {
if(arr[i][j] > max) {
max = arr[i][j];
maxCol = j;
}
}
printf("第%d行的最大值是%d,所在的位置是(%d,%d)\n", i+1, max, i+1, maxCol+1);
}
}
int main() {
int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
findMax(arr, 3, 4);
return 0;
}
```
在主函数中,我们定义了一个 3 行 4 列的二维数组 `arr`,然后将其作为参数传递给 `findMax` 函数。`findMax` 函数接受一个指向二维数组的指针 `arr`,以及数组的行数 `row` 和列数 `col`。在函数中,我们使用两个循环来遍历二维数组中的所有元素,找到每一行的最大值及其所在的位置,并将其打印输出。注意,在二维数组中,行和列的编号都是从 0 开始的,但是题目要求输出时行和列的编号都应该从 1 开始,因此我们在输出时需要将行和列的编号加 1。