输入10个整数,将其中最小的数与第一个数对换,把最大的数 与最后一个数对换。写3个函数: 输入10个数; 进行处理; 输出10个数。 要求:必须使用指针和函数调用。 用c语言写出。
时间: 2023-12-04 22:23:34 浏览: 72
1.给出一个整数数组,求其中任意两个元素之差的最大值。
5星 · 资源好评率100%
好的,以下是使用指针和函数调用实现输入10个数、进行处理和输出10个数的示例代码:
```c
#include <stdio.h>
void input(int *p); // 输入10个数
void process(int *p); // 进行处理
void output(int *p); // 输出10个数
int main()
{
int nums[10];
int *p = nums; // 定义指针指向数组首地址
input(p); // 输入10个数
process(p); // 进行处理
output(p); // 输出10个数
return 0;
}
void input(int *p)
{
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", p + i);
}
}
void process(int *p)
{
int *max = p, *min = p; // 定义指针指向最大值和最小值
for (int i = 1; i < 10; i++) {
if (*(p + i) > *max) {
max = p + i;
}
if (*(p + i) < *min) {
min = p + i;
}
}
int temp = *p; // 将最小值与第一个数对换
*p = *min;
*min = temp;
temp = *(p + 9); // 将最大值与最后一个数对换
*(p + 9) = *max;
*max = temp;
}
void output(int *p)
{
printf("处理后的10个数为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", *(p + i));
}
printf("\n");
}
```
在上述代码中,我们使用了三个函数分别完成了输入、处理和输出的功能,其中指针 `p` 指向了数组 `nums` 的首地址,在函数调用的过程中我们传递的都是指针,而不是数组本身。这种方式可以减少传递数组的开销,提高程序的效率。
阅读全文