若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

2261: 调整数组顺序使奇数位于偶数前面(栈和队列)

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,448

题目描述

题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分,奇数部分降序排列输出,偶数部分升序输出。

输入

输入:
8 13 25 18 56 11 77 98

输出

输出:
77 25 13 11 8 18 56 98

样例输入

8 13 25 18 56 11 77 98

样例输出

77 25 13 11 8 18 56 98

参考代码

#include <stdio.h>  
#include <stdlib.h>  
#define Stack_Size 100  
#define MAX 500  
typedef struct 
{
    int *top;
    int *base;
    int stacklength;
}
Sqstack,*Pstack;
void InitStack(Pstack S) 
{
    S->base=(int *)malloc( Stack_Size*sizeof(int));
    if(!S->base)  
                   exit(1);
    S->top=S->base;
    S->stacklength=Stack_Size;
}
void Push(Pstack S,int ch) 
{
    if(S->top-S->base>=Stack_Size)  
                   exit(1);
    *(S->top++)=ch;
}
void Pop(Pstack S) 
{
    if(S->base==S->top)  
                  exit(1);
    S->top--;
}
void Clear(Pstack S) 
{
    S->base=S->top;
}
int main() 
{
    int i,j,ch,k,s1,s2,flagx=0,flagy=0;
    int x,y,z;
    char t;
    Sqstack S;
    int *p;
    int Array[MAX],B[MAX]={0},C[MAX]={0};
    InitStack(&S);
    scanf("%d",&ch);
    Push(&S,ch);
    while((t=getchar())!=EOF) 
    {
        scanf("%d",&ch);
        Push(&S,ch);
    }
    for (p=S.base,i=0;p<S.top;p++,i++)  
              Array[i]=*p;
    for (j=0;j<i;j++) 
    {
        if(Array[j]%2==1) 
        {
            B[flagx]=Array[j];
            flagx++;
        } else 
        {
            C[flagy]=Array[j];
            flagy++;
        }
    }
    for (x=0;x<flagx-1;x++)
             for (y=0;y<flagx-x-1;y++)
                 if(B[y]<B[y+1]) 
    {
        z=B[y];
        B[y]=B[y+1];
        B[y+1]=z;
    }
    for (x=0;x<flagy-1;x++)
             for (y=0;y<flagy-x-1;y++)
                 if(C[y]>C[y+1]) 
    {
        z=C[y];
        C[y]=C[y+1];
        C[y+1]=z;
    }
    for (x=0;x<=flagx-1;x++)
             printf("%d ",B[x]);
    for (x=0;x<=flagy-1;x++)
             printf("%d ",C[x]);
    printf("n"); 
     return 0;  
}

解析

暂无

hustoj

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Skip Dreams孤独患者 原站点
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist