本题要求将给定的n个整数从大到小排序后输出。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
4
5 1 7 6
输出样例:
7 6 5 1
代码实现:
冒泡排序法:
#include<stdio.h>
int main()
{
int n, i, arr[10], j, temp;
scanf("%d", &n);
for (i = 0;i < n;i++)//给数组赋值
{
scanf("%d", &arr[i]);
}
//冒泡排序法
for (i = 1;i < n;i++)
{
for (j = 0;j < n - i;j++)
{
if (arr[j] < arr[j + 1])
{
//俩俩比较,交换数据
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("%d", arr[0]);
for (i = 1;i < n;i++)
{
printf(" %d", arr[i]);
}
return 0;
}
选择排序法:
#include<stdio.h>
int main()
{
int n, i, arr[10], j, temp;
scanf("%d", &n);
for (i = 0;i < n;i++)//给数组赋值
{
scanf("%d", &arr[i]);
}
//选择法排序
for (i = 0;i < n;i++)
{
for (j = i + 1;j < n;j++)
{
if (arr[i] < arr[j])
{
//俩俩比较,交换数据
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printf("%d", arr[0]);
for (i = 1;i < n;i++)
{
printf(" %d", arr[i]);
}
return 0;
}