第四周作业(挑战题)

冒泡法排序

输入1个正整数n(1<=n<=10),然后输入n个整数并存放在数组中,将这n个整数从大到小排序后输出,相邻数字间有一个空格,行末不得有多余空格。

输入格式:

输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。

输出格式:

在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。

输入样例:

4 
75 71 77 76

输出样例:

77 76 75 71

代码:

#include <stdio.h>

 int main(void)
 {
    int n, i, j, t=0;
    int num[100];
    
    scanf("%d", &n);
    
    for(i = 0;i < n;i++)
    {
        scanf("%d", &num[i]);
    }
    for(i = 1;i < n;i++)
    {
        for(j = 0;j < n - i;j++)
        {
            if(num[j] < num[j+1])
            {
                t = num[j];
                num[j] = num[j+1];
                num[j+1] = t;
            }
        }
    }
    for(i = 0;i < n;i++)
    {
        printf("%d", num[i]);
    
        if(i != n-1)
        printf(" ");
    }
    
    return 0;
 }
 

流程图:

本题的问题:

问题没有,书上有例子,并不难。

猜你喜欢

转载自www.cnblogs.com/zw431387/p/10561217.html