写一个完整的c语言程序:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求写3个函数:①输入10个数;②进行处理;③输出10个数。
时间: 2023-09-19 10:06:26 浏览: 106
### 回答1:
下面是一个实现上述功能的C语言程序,包含三个函数:
```c
#include <stdio.h>
// 输入10个数
void input(int nums[]) {
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
}
}
// 进行处理
void process(int nums[]) {
// 找到最小的数和最大的数
int min = nums[0], max = nums[0];
int min_index = 0, max_index = 0;
for (int i = 1; i < 10; i++) {
if (nums[i] < min) {
min = nums[i];
min_index = i;
}
if (nums[i] > max) {
max = nums[i];
max_index = i;
}
}
// 将最小的数与第一个数对换
int temp = nums[0];
nums[0] = min;
nums[min_index] = temp;
// 将最大的数与最后一个数对换
temp = nums[9];
nums[9] = max;
nums[max_index] = temp;
}
// 输出10个数
void output(int nums[]) {
printf("处理后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", nums[i]);
}
printf("\n");
}
int main() {
int nums[10];
input(nums);
process(nums);
output(nums);
return 0;
}
```
使用该程序,可以输入10个整数,然后将其中最小的数与第一个数对换,最大的数与最后一个数对换,最后输出处理后的数组。
### 回答2:
#include <stdio.h>
void input(int arr[]) {
printf("请输入10个整数:\n");
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 process(int arr[]) {
int minIndex = 0;
int maxIndex = 0;
for (int i = 1; i < 10; i++) {
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
}
swap(&arr[minIndex], &arr[0]);
swap(&arr[maxIndex], &arr[9]);
}
void output(int arr[]) {
printf("处理后的数为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[10];
input(arr);
process(arr);
output(arr);
return 0;
}
### 回答3:
下面是一个完整的C语言程序来实现题目要求的功能:
```c
#include <stdio.h>
// 函数声明
void inputNumbers(int numbers[]);
void processNumbers(int numbers[]);
void outputNumbers(int numbers[]);
int main() {
int numbers[10];
// 输入10个数
inputNumbers(numbers);
// 进行处理
processNumbers(numbers);
// 输出10个数
outputNumbers(numbers);
return 0;
}
// 输入10个数
void inputNumbers(int numbers[]) {
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &numbers[i]);
}
}
// 进行处理
void processNumbers(int numbers[]) {
// 寻找最小值和最大值的下标
int minIndex = 0, maxIndex = 0;
for (int i = 0; i < 10; i++) {
if (numbers[i] < numbers[minIndex]) {
minIndex = i;
}
if (numbers[i] > numbers[maxIndex]) {
maxIndex = i;
}
}
// 将最小值与第一个数对换
int temp = numbers[0];
numbers[0] = numbers[minIndex];
numbers[minIndex] = temp;
// 将最大值与最后一个数对换
temp = numbers[9];
numbers[9] = numbers[maxIndex];
numbers[maxIndex] = temp;
}
// 输出10个数
void outputNumbers(int numbers[]) {
printf("处理后的数字为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
}
```
这个程序中,首先定义了三个函数来实现输入、处理和输出的功能。在 `main` 函数中,创建了一个长度为10的整数数组 `numbers` 来存储输入的数。
`inputNumbers` 函数用于接收用户输入的10个整数,并将这些数保存到 `numbers` 数组中。
`processNumbers` 函数用于处理 `numbers` 数组,寻找最小值和最大值的下标,并进行数值的对换操作。
`outputNumbers` 函数用于将处理后的10个数输出到屏幕上。
最后,在 `main` 函数中按照输入、处理和输出的顺序调用这三个函数,即可完成题目要求的功能。
阅读全文