帮解答一下谢谢谢谢刚刚学习要是能帮打出来最好啦才学到for

新手上路,请多包涵

编程实现:从键盘输入10个整数,

找到值最大的元素,将其与最后一个元素a[9]交换;再在a[0]~a[8]中找值最大的元素,与a[8]交换;
再在a[0]~a[7]中找值最大的元素,与a[7]交换;
再在a[0]~a[6]中找值最大的元素,与a[6]交换;
再在a[0]~a[5]中找值最大的元素,与a[5]交换;
再在a[0]~a[4]中找值最大的元素,与a[4]交换;
再在a[0]~a[3]中找值最大的元素,与a[3]交换;
再在a[0]~a[2]中找值最大的元素,与a[2]交换;
再在a[0]~a[1]中找值最大的元素,与a[1]交换;
最后输出整个数组。

阅读 1.4k
1 个回答
新手上路,请多包涵

冒泡排序

c语言实现

#include <stdio.h>
 
#define ARR_LEN 255 /*数组长度上限*/
#define elemType int /*元素类型*/
 
/* 冒泡排序 */
/* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 */
/* 2. 对所有元素均重复以上步骤,直至最后一个元素 */
/* elemType arr[]: 排序目标数组; int len: 元素个数 */

 void bubbleSort (elemType arr[], int len) {
    elemType temp;
    int i, j;
    for (i=0; i<len-1; i++) /* 外循环为排序趟数,len个数进行len-1趟 */
        for (j=0; j<len-1-i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */
            if (arr[j] > arr[j+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
}
 
int main (void) {
    elemType arr[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4};
    int len = 10;
    int i;
     
    bubbleSort (arr, len);
    for (i=0; i<len; i++)
        printf ("%d\t", arr[i]);
    putchar ('\n');
     
    return 0;
}

摘自百度百科

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
极客观点
子站问答
访问
宣传栏