谭浩强C语言程序设计课后习题
题目:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求是使用三个函数,①输入十个数;②进行处理;③输出十个数。
代码实现:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void inputNumbers(int arr[])
{
for (int i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
}
void swap(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void processNumbers(int arr[])
{
int min = 0;
int max = 0;
for (int i = 0; i < 10; i++)
{
if (arr[i] > arr[max])
{
max = i;
}
if (arr[i] < arr[min])
{
min = i;
}
}
swap(&arr[max], &arr[9]);
swap(&arr[min], &arr[0]);
}
void outputNumbers(int arr[])
{
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
}
int main()
{
int arr[10] = { 0 };
inputNumbers(arr);
processNumbers(arr);
outputNumbers(arr);
}
在上面的代码中,我们定义了三个函数:
inputNumbers
用于输入十个整数,processNumbers
用于处理这十个数,outputNumbers
用于输出处理后的十个数。在processNumbers
函数中,我们使用了两个变量min
和max
来记录最小数和最大数的索引,然后使用swap
函数进行交换。