三水合 2021-11-15 15:56 采纳率: 76.8%
浏览 19
已结题

编写函数实现以下内容

img

  • 写回答

1条回答 默认 最新

  • 冷0_O 2021-11-15 16:22
    关注

    代码如下:
    望采纳

    #include <stdio.h>
    
    /*
    @ arr 数组名
    @ n 数组元素个数 
    */
    int ArrSort(int arr[], int n)
    {
        int flag = 0;
        
        for(int i=0; i<n-1; i++){
            flag = 0;
            for(int j=0;j<n-i-1;j++){
                if(arr[j] < arr[j+1]){
                    ++ flag; //进行了位置交换,flag加一
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
            if(0 == flag) //如果没有进行位置交换,则代表以及排序完毕,退出循环
                break;
        }
        return 0;
    }
    
    /*
    @ arr 数组名
    @ n 数组元素个数 
    */
    void input_number(int arr[],int n)
    {
        for(int i=0; i<n; i++)
            scanf("%d",&arr[i]);
    }
    
    /*
    @ arr 数组名
    @ n 你要输出的元素个数 
    */
    void printf_number(int arr[], int n)
    {
        for(int i=0; i<n; i++)
            printf("%d ",arr[i]);
    }
    
    int main()
    {
        int a[30] = {0};
        input_number(a, 30);
        ArrSort(a, 30);
        printf_number(a, 10);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月23日
  • 已采纳回答 11月15日
  • 创建了问题 11月15日