完善如下程序:要求输入10个整数存入到一个数组a中,并将数组a中的最大元素(如果有多个相同的,以最后一个为准)与数组第一个元素对换。 需要编写3个函数: 输入n个数到数组。 实现最大元素与数组第一个元素对换。 将数组n个数输出。
时间: 2024-05-11 16:17:57 浏览: 140
下面是完整程序:
```c
#include <stdio.h>
void input(int a[], int n);
void swap(int a[], int n);
void output(int a[], int n);
int main()
{
int a[10];
input(a, 10);
swap(a, 10);
output(a, 10);
return 0;
}
void input(int a[], int n)
{
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
}
void swap(int a[], int n)
{
int max = 0;
for (int i = 1; i < n; i++)
{
if (a[i] >= a[max])
{
max = i;
}
}
if (max != 0)
{
int temp = a[max];
a[max] = a[0];
a[0] = temp;
}
}
void output(int a[], int n)
{
printf("数组元素为:\n");
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
```
程序中的 `input` 函数用于输入数组元素,将 `n` 个整数存入到数组 `a` 中;`swap` 函数查找最大元素并与数组第一个元素对换;`output` 函数用于输出数组元素。
在 `swap` 函数中,我们遍历数组,找到最大元素的下标 `max`,然后将其与数组第一个元素对换。需要注意的是,如果最大元素本来就在数组第一个位置上,则不需要对换。
在 `main` 函数中,我们依次调用 `input`、`swap`、`output` 函数,完成整个程序的功能。
阅读全文