1103木棒还原(重写)

2017-12-03 13:25:44来源:CSDN作者:FnLock人点击

分享
#include <stdio.h>#include <stdlib.h>//  FnLock//  该函数是将所有的0移到后面 void special_sort(int *arr,int n);//  该函数将数据从小到大排序(选择排序)void my_sort(int *arr,int n);int main(int argc,const char *argv[]){    int n;    int time = 0;    int *arr;    int i,j;    scanf("%d",&n);    //  动态内存分配     arr = (int *)malloc(n*sizeof(int));    //  读入木棒长度     for(i=0;i<n;i++)    {        scanf("%d",&arr[i]);    }    //  需要n-1次排序     for(i=0; i<n-1; i++)    {        //  从小到大排序         my_sort(arr,n);        //  将所有的零移到后面         special_sort(arr,n);        //  加上最短两根相接所需时间         time += arr[0]+arr[1];        //  相接之后这根的长度为两根之和         arr[0] = arr[0]+arr[1];        //  另一根没有了         arr[1] = 0;     }    printf("%d/n",time);    //  申请的内存释放     free(arr);    return 0;} //  该函数是将所有的0移到后面 void special_sort(int *arr,int n){    int i,j;    int t=n+1;    for(i=0;i<n;i++)    {        if(arr[i]==0&&i<t)        {            for(j=i;j<n-1;j++)            {                arr[j]=arr[j+1];            }            arr[j]=0;            i--;            t--;            }    }}//  该函数将数据从小到大排序(选择排序)void my_sort(int *arr,int n){    int i,j;    for(i=0; i<n-1; i++)    {        for(j=i; j<n; j++)        {            if(arr[i]>arr[j])            {                int temp;                temp = arr[i];                arr[i] = arr[j];                arr[j] = temp;            }        }    }} 

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台