c语言 用选择法对10个数进行从大到小排序,用完整程序实现
时间: 2023-11-21 20:19:55 浏览: 96
好的,以下是C语言选择法对10个数进行从大到小排序的完整程序实现:
#include <stdio.h>
int main()
{
int data[10] = {10, 4, 6, 8, 3, 9, 1, 7, 2, 5};
int i, j, max, temp;
for (i = 0; i < 9; i++)
{
max = i;
for (j = i + 1; j < 10; j++)
{
if (data[j] > data[max])
{
max = j;
}
}
if (max != i)
{
temp = data[i];
data[i] = data[max];
data[max] = temp;
}
}
printf("排序后的结果为:");
for (i = 0; i < 10; i++)
{
printf("%d ", data[i]);
}
printf("\n");
return 0;
}
希望这个完整程序能够帮到你。如果还有其他问题,我会尽力回答。
相关问题
用从c语言程序,利用选择排序法,实现五个数从小到大排列
好的,我可以回答这个问题。以下是使用选择排序算法在C语言中实现五个数从小到大排列的代码示例:
```
#include <stdio.h>
int main()
{
int arr[5] = {5, 2, 6, 1, 3}; // 待排序的数组
int i, j, min_idx;
// 选择排序算法
for (i = 0; i < 4; i++)
{
min_idx = i;
for (j = i+1; j < 5; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
// 交换arr[i]和arr[min_idx]
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
// 输出排序后的数组
printf("排序后的数组为: ");
for (i = 0; i < 5; i++)
printf("%d ", arr[i]);
return 0;
}
```
运行以上代码,输出结果为:1 2 3 5 6,即五个数从小到大排列的结果。
C语言 指针 从键盘输入10个整数,用选择法对其从大到小排序并输出。
好的,这道题可以使用选择排序的方法来实现。
选择排序的基本思路是:每次从待排序的数组中选择一个最大或最小的元素,然后将其放在已排序的数组的最后面或最前面。重复这个过程,直到整个数组都被排序。
以下是使用指针的选择排序实现代码:
```c
#include <stdio.h>
void selection_sort(int *arr, int n) {
for (int i = 0; i < n - 1; i++) {
int max_index = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] > arr[max_index]) {
max_index = j;
}
}
if (i != max_index) {
int temp = arr[i];
arr[i] = arr[max_index];
arr[max_index] = temp;
}
}
}
int main() {
int arr[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
selection_sort(arr, 10);
printf("从大到小排序后的结果为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
以上代码中,我们定义了一个 `selection_sort` 函数来实现选择排序。函数中使用两个嵌套的循环,外层循环控制已排序的元素个数,内层循环用于在待排序的元素中查找最大值,并将其放在已排序数组的末尾。
同时,我们使用指针来操作数组,可以提高程序的效率。在函数调用时,可以传入数组的首地址,也就是数组的指针。在函数内部,可以使用指针来访问数组元素,这样就不需要传入数组的长度了。
希望这个例子能够帮助你理解指针的使用,和选择排序的实现。