从键盘输入5个整数,利用选择法排序,将其按从大到小顺序排列输出。(选择排序法)

#include<stdio.h>
int main()
{
    int a[5];
    int b,q,w,c,k,e;
    for(b=0;b<=4;b++)
        scanf("%d",&a[b]); 
    for(q=0;q<=3;q++)
    {
        k=q;
        for(w=q+1;w<=4;w++)
        {
            if(a[k]<a[w])
                k=w;  
        }
        c=a[q];
        a[q]=a[k]; 
        a[k]=c;
    }
    for(e=0;e<=4;e++)
        printf("%d ",a[e]);
    return 0;
}
    

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用选择排序对100个整数进行排序选择排序的基本思想是:首先在未排序的数列中找到最大(小)元素,然后将其存放到数列的末尾(开头)。接着,再从剩余未排序的元素中继续寻找最大(小)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 代码示例: ``` #include <stdio.h> void sort(int arr[], int n) { int i, j, max_index, temp; for (i = 0; i < n - 1; i++) { max_index = i; for (j = i + 1; j < n; j++) { if (arr[j] > arr[max_index]) { max_index = j; } } temp = arr[i]; arr[i] = arr[max_index]; arr[max_index] = temp; } } int main() { int i, n = 100; int arr[100]; // 读入100个整数 for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } // 调用选择排序函数 sort(arr, n); // 输出排序后的数组 for (i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; } ``` ### 回答2: 选择排序是一种简单直观的排序方,适用于小规模的数据排序。要按由大到小的顺序排列100个输入的整数,可以按照以下步骤进行选择排序: 1. 从键盘上输入100个整数,保存到一个数组中。 2. 遍历数组,将第一个元素设为当前最大值。 3. 依次比较当前最大值与后面的元素,如果发现比当前最大值更大的元素,则更新当前最大值的索引。 4. 在遍历完成后,将当前最大值与第一个元素交换位置。这样,最大值就会被放到数组的第一个位置。 5. 重复步骤3和步骤4,只不过每次比较和交换的范围会减少一个元素。 6. 经过n次遍历后,数组就会按由大到小的顺序排列。 以下是具体实现的代码示例: ```python # 输入100个整数 nums = [] for i in range(100): num = int(input("请输入第{}个整数:".format(i+1))) nums.append(num) # 选择排序 for i in range(len(nums)): max_index = i for j in range(i+1, len(nums)): if nums[j] > nums[max_index]: max_index = j # 将最大值与第一个元素交换位置 nums[i], nums[max_index] = nums[max_index], nums[i] # 输出按由大到顺序排列的数组 print("从大到小排列的整数序列:") for num in nums: print(num, end=" ") ``` 通过以上步骤,就可以将输入的100个整数按由大到小的顺序排列。 ### 回答3: 首先,我们需要编写一个程序来接收键盘输入的100个整数。可以使用循环结构来让用户连续输入100次,然后将输入的整数存储在一个列表中。 接下来,我们使用选择来对这个列表进行排序。选择是一种简单直观的排序算,其基本思想是每次从未排序的部分选择最大(或最小)的数放到已排序部分的最前面(或最后面)。 具体实现时,我们使用双重循环来遍历列表,外层循环控制每一轮选择,内层循环找到未排序部分的最大数,并与未排序部分的最后一个数交换位置。 最后,我们输出排序后的结果。可以使用循环遍历列表,并逐个打印出来。 以下是一个简单的示例代码: ```python # 接收键盘输入 numbers = [] for i in range(100): num = int(input("请输入整数: ")) numbers.append(num) # 选择法排序 for i in range(len(numbers) - 1): max_index = i for j in range(i + 1, len(numbers)): if numbers[j] > numbers[max_index]: max_index = j numbers[i], numbers[max_index] = numbers[max_index], numbers[i] # 输出排序结果 print("按由大到小的顺序排列:") for num in numbers: print(num) ``` 以上代码演示了如何使用选择对输入的100个整数进行排序,并按从大到小的顺序输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值