创建一个元素个数为 10 的整型数组,从键盘随机输入数组的各元素,编写程序实现数
组元素从小到大的排序,并输出排序结果。若改为从大到小排序,该如何编写程序?
简单,同样排序,从后面开始输出就行了
从大到小
void bubble_sort(unsigned int a[], int n)
{
int i ,j, temp;
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 bubble_sort2(unsigned int a[], int n)
{
int i ,j, temp;
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;
}
}
}
}
其实就改一个判断就可以
#include <stdio.h>
void sort(int arr[10], int n);
int main(void) {
int arr[10];
for (int i = 0; i < 10; ++i) { //输入
scanf("%d", &arr[i]);
}
sort(arr, 10); //排序
for (int i = 0; i < 10; ++i) { //打印
printf("%d ", arr[i]);
}
return 0;
}
void sort(int arr[10], int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
if (arr[j] < arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
#include <stdio.h>
int main(){
int nums[10] ;
int i, j, temp;
for(i=0; i<10; i++){
scanf("%d",&nums[i]);
}
/**从小到大
for(i=0; i<10-1; i++){
//每一轮比较前 n-1-i 个,
for(j=0; j<10-1-i; j++){
if(nums[j] > nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}**/
//从大到小
for(i=0; i<10-1; i++){
//每一轮比较前 n-1-i 个,
for(j=0; j<10-1-i; j++){
if(nums[j] < nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
//输出排序后的数组
for(i=0; i<10; i++){
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
从小到大
#include <stdio.h>
int
main(int argc, char *argv[]) {
int arr[10];
int change;
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 9-i; j++) {
if (arr[j] <= arr[j+1]) {
change = arr[j];
arr[j] = arr[j+1];
arr[j+1] = change;
}
}
printf("%5d", arr[9-i]);
}
return 0;
}
从大到小
#include <stdio.h>
int
main(int argc, char *argv[]) {
int arr[10];
int change;
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 9-i; j++) {
if (arr[j] >= arr[j+1]) {
change = arr[j];
arr[j] = arr[j+1];
arr[j+1] = change;
}
}
printf("%5d", arr[9-i]);
}
return 0;
}