小程序(十二)调整数组存放方式
给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。
#include<stdio.h> #include<stdlib.h> //#define N 8 void maopao_sort(int array[],int output_maopao[],int len) { int temp; for(int i=0;i<len-1;i++) for(int j=0;j<len-i-1;j++) if(array[j]<array[j+1]) { temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } //for(int k=0;k<len;k++) // printf("%d",array[k]); } void sort(int array[],int len,int output[]) { maopao_sort(array,output,len); int i,j; int k=0; i = len/2; if(len%2!=0) { output[i] = array[k++]; for(j=1;j<len/2+1;j++) { output[i-j] = array[k++]; output[i+j] = array[k++]; } } else { output[i] = array[k++]; for(j=1;j<len/2+1;j++) { output[i-j] = array[k++]; output[i+j] = array[k++]; } output[i-j] = array[k]; } } int main() { int array[]= {3,6,1,9,7,8}; int len = sizeof(array)/sizeof(int); int *output = (int*)malloc(sizeof(int)*len); sort(array,len,output); for(int i=0;i<len;i++) printf("%5d",output[i]); printf(" "); return 0; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Action如何接收jsp页面form表单提交的数据?
- 下一篇: emjoy表情插入数据库问题