编写一个函数,对10个整数按降序排序。在主函数输入10个数,调用该函数,输出排序后的结果。在线求答案

如题所述

代码如下:

一、头文件:

#include <stdio.h>

#define N 10

二、输入函数,获取输入值:

void sort(int a[],int n){    int i, j;    int temp = 0;     for (i = 0; i < n - 1; i++) {        for (j = 0; j < n - 1 - i; j++) {            if (a[j] < a[j + 1]) {                temp = a[j];                a[j] = a[j + 1];                a[j + 1] = temp;            }        }

}

}

三、选择排序函数:

void select_sort(int *a, int n){    int i, j;    int temp, max;     for (i = 0; i < n - 1; i++) {        max = i;        for (j = i + 1; j < n; j++)            if (a[max] < a[j])                max = j;         if (max != i) {                temp = a[max];                a[max] = a[i];                a[i] = temp;        }    }

}

三、主函数,执行。

int main(void){    int a[N], i;    for (i = 0; i < N; i++) {        scanf("%d", &a[i]);    }     //sort(a, N);    select_sort(a, N);    for (i = 0; i < N; i++) {        printf("%d,", a[i]);    }    putchar(10);    return 0;

}

扩展资料:

C语言排序的3种方法:

1、冒泡法:

思想:每次相邻两个数比较,若升序,则将大的数放到后面,一次循环过后,就会将最大的数放在最后。

2、选择排序:

从第一个数开始,每次和后面剩余的数进行比较,若升序,则如果后边的数比当前数字小,进行交换,和后面的所有的数比较、交换后,就会将当前的最小值放在当前的位置。

3、插入排序:

用扑克的方法解释,首先抽到第一张牌,将它放在第一位,排序是从第二次抽牌开始,第二次抽起一张牌3,它比9小,所以将9向后移一。位然后把3放在9原来的位置。再次抽牌2,发现它应该再3的前面,所以将3和9向后移,把2放到3原来的位置... ... 以此类推的思维。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-07-01

代码:

运行结果:

追问

有没有非图片的。。。我好复制下= =!
这个是大学作业,我不会做,C语言的。。。

追答

/**
* 数组排序 (冒泡排序法)
* @param arr
*/
public static void Sort(int[] arr){
for (int i = 0; i arr[j]){//倒序改为<
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
(这是刚才的Sort方法代码复制)

追问

从哪开始复制啊= =!我对这个真的不懂。。。

追答

public static void Sort(int[] arr){
for (int i = 0; i arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}

追问

哦,谢谢啦!我开始提问一个重复的和这个一样的问题,有150分呢,你找找看。
你能把完整的所有图片内容复制给我吗?谢谢

追答

public class Text {
public static void main(String[] args) {
int[] arr=new int[10];
Scanner input =new Scanner(System.in);
for (int i = 0; i arr[j]){//倒序改为<
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
}

本回答被提问者采纳
相似回答