c语言,从键盘输入N个整数,用数组作为函数参数的形式,按降序重新存放后输出,
时间: 2023-11-09 20:05:32 浏览: 79
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
好的,我来为您解答这个问题。
首先,我们需要定义一个函数,这个函数接受一个整型数组和数组长度作为参数,然后按降序对数组进行排序。可以使用冒泡排序或选择排序等算法实现。
下面是使用选择排序算法实现的代码示例:
```c
void sortArray(int arr[], int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
int maxIndex = i;
for (j = i + 1; j < len; j++) {
if (arr[j] > arr[maxIndex]) {
maxIndex = j;
}
}
if (maxIndex != i) {
temp = arr[i];
arr[i] = arr[maxIndex];
arr[maxIndex] = temp;
}
}
}
```
然后,在主函数中读取键盘输入的N个整数,并将它们存储到一个整型数组中。接着,调用上述函数对数组进行排序,并输出排序后的数组元素。
下面是完整的代码示例:
```c
#include <stdio.h>
void sortArray(int arr[], int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
int maxIndex = i;
for (j = i + 1; j < len; j++) {
if (arr[j] > arr[maxIndex]) {
maxIndex = j;
}
}
if (maxIndex != i) {
temp = arr[i];
arr[i] = arr[maxIndex];
arr[maxIndex] = temp;
}
}
}
int main() {
int N, i;
printf("请输入整数的个数:\n");
scanf("%d", &N);
int arr[N];
printf("请输入%d个整数:\n", N);
for (i = 0; i < N; i++) {
scanf("%d", &arr[i]);
}
sortArray(arr, N);
printf("按降序排列后的数组:\n");
for (i = 0; i < N; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
希望能够帮助到您!
阅读全文