菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
356
0

支军队正在进行阅兵前的训,训陈前队列排队是一个难题。该队列是一个n*n的方阵,排队要求是后一排的最低的不比前一排最高的低,同时要求偶数行从小到大排列,奇数行从大到小排列(行数从第0行开始,O为偶数)。输λn及η*n个身高数据〈身高数据为整型),按要求处理后输岀 n队列身高数据(每个身高数据占4个字符宽度)。

原创
05/13 14:22
阅读数 10710

支军队正在进行阅兵前的训,训陈前队列排队是一个难题。该队列是一个n*n的方阵,排队要求是后一排的最低的不比前一排最高的低,同时要求偶数行从小到大排列,奇数行从大到小排列(行数从第0行开始,O为偶数)。输λn及η*n个身高数据〈身高数据为整型),按要求处理后输岀
n队列身高数据(每个身高数据占4个字符宽度)。

B]A3`4$5T5~8{70U@ZEEOKB

/*对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序*/
#include <stdio.h>
#define N 100
void swap(int *a,int *b)
{
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}
void my_sort(int num,int a[][N])
{
    int k = 0;
    int i = 0;                                          
    int j = 0;                                            
    
    for(i = 0;i < num;i++)
    {
        if(i%2 == 0)                                         
        {
            for(j = 0;j < num;j++)                          
            {
                for(k = j+1;k < num;k++)
                {
                    if(a[i][k] < a[i][j])
                    {
                        swap(&a[i][k],&a[i][j]);
                    }
                }
            }
        }
        else
        {
            for(j = 0;j < num;j++)
            {
                for(k = j+1;k < num;k++)
                {
                    if(a[i][k] > a[i][j])
                    {
                        swap(&a[i][k],&a[i][j]);
                    }
                }
            }
        }
    }
}
void bubble_sort(int a[], int n)    
{
    int i,j,temp;   
    for (j=0;j<n-1;j++)   
    {                           
        for (i=0;i<n-1-j;i++)
        {
            if(a[i]>a[i+1]) 
            {
                temp=a[i];     
                a[i]=a[i+1]; 
                a[i+1]=temp;
            }
        }
    }    
}
void repair(int num,int a[][N]){
    int last =num-1;//2
    int setindex=num-2;//1
    int i,j,x=0,y=0;
    int tmep[N];
    for(i=setindex;i<num;i++){
        for(j=0;j<num;j++){
            tmep[x++]=a[i][j];
        }
    }
    bubble_sort(tmep,x);
    x=0;
    for(i=setindex;i<num;i++){
        for(j=0;j<num;j++){
            a[i][j]=tmep[x++];
        }
    }
    my_sort(num,a);
}
int main()
{
    int N_line = 0;                                   
    int a[N][N] = {0};
    int i = 0;
    int j = 0;
 
    scanf("%d",&N_line);
 
    for(i = 0;i < N_line;i++)
    {
        for(j = 0;j < N_line;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
 
    my_sort(N_line,a);
     repair(N_line,a); 
    for(i = 0;i < N_line;i++)
    {
        for(j = 0;j < N_line;j++)
        {
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
 
    return 0;
}

发表评论

0/200
356 点赞
0 评论
收藏