📄 ting4.c
字号:
#include"stdio.h"
#include"conio.h"
#include"alloc.h"
#define N 10
struct seqstack;
typedef struct seqstack *pseqstack;
struct seqstack
{
int number[N];
int n;
};
int total=0;
int n;
pseqstack create_seq(void)
{
pseqstack p;
printf("input n:\n");
scanf("%d",&n);
p=(pseqstack)malloc(sizeof(struct seqstack));
if(p==NULL)
printf("out of space");
else
p->n=-1;
return(p);
}
void initial_seq(void)
{
int i,m=-1,s[N];
pseqstack p;
p=create_seq();
if(p==NULL)exit(0);
for(i=0;i<n;i++)
{
p->number[i]=n-i;
p->n++;
}
display_line(p,s,m);
}
display_line(pseqstack p,int l[],int m)
{
int i,j,k,temp1,temp2,temp,rr[N][N],m1;
pseqstack q[N];
if(p->n==-1){for(i=0;i<n;i++)printf("%d",l[i]);}
for(i=p->n;i>=0;i--)
{
q[i]=(pseqstack)malloc(sizeof(struct seqstack));
if(q[i]==NULL)exit(0);
//将没有输出的数据保存在另外一个栈中
for(j=0;j<i;j++)
q[i]->number[j]=p->number[j];
for(;j<p->n;j++)
q[i]->number[j]=p->number[j+1];
q[i]->n=p->n-1;
//对栈中数据排序
for(k=i;k<q[i]->n;k++)
{
temp1=k;
for(j=k+1;j<=q[i]->n;j++)
if(q[i]->number[temp1]>q[i]->number[j])
temp1=j;
if(temp1!=k)
{
temp2=q[i]->number[temp1];
q[i]->number[temp1]=q[i]->number[k];
q[i]->number[k]=temp2;
}
}
//将栈中没有的数据保存在数组中
for(j=0;j<=m;j++)
rr[i][j]=l[j];
m1=m+1;
rr[i][j]=p->number[i];
display_line(q[i],rr[i],m1);
while(p->number[i]>p->number[i-1])i--;
printf(" ");
}
}
main()
{
int flag;
do{
clrscr();
initial_seq();
printf("input flag:\n");
scanf("%d",&flag);
}while(flag);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -