C语言排序小练习

来源:互联网 发布:淘宝客服售后工作流程 编辑:程序博客网 时间:2024/06/06 03:53

给定n,有数列A[n]={0,1,2,…,n-1};
给定i,得到新数列B[n-1]={i-1,i+1,i-2,i+2,…,i-k,i+k,…}。当i-k<0时,则将A中剩余的数升序排列。当i+k>n时,将A中剩余的数降序排列。


题意说明:
这里写图片描述


#include<stdio.h>#define i 5#define n 9int main(){    int tab[n-1]={0};    int j=0;    int k,m;    for(k=1;k<n;k++)    {        if(i-k>=0&&i+k<n)        {            tab[j++]=i-k;                   tab[j++]=i+k;        }        else            break;    }    if(i-k<0)    {        for(m=i+k;m<n;m++)        tab[m-1]=m;    }    else    {int l=i-k;        for(m=2*k-2;m<n;m++)        tab[m]=l--;    }    for(j=0;j<n-1;j++){    printf("%3d",tab[j]);}   printf("\n");    return  0;}

结果:
这里写图片描述

0 0