排序很乱,把排序单独封装一个函数,这样比较好处理逻辑,给你修改一下代码。
运行结果:
代码修改如下:
#include <stdio.h>
//flag=0表示降序,=1表示升序
void bubblesort(int a[],int n,int flag)
{
int i,j,t;
for (i=0;i<n-1;i++)
{
for (j=0;j<n-1-i;j++)
{
if(flag && a[j]>a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}else if (flag ==0 && a[j]<a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
}
int main()
{
int m,n,i,j,pi,qi;
int a[10000];
scanf("%d %d",&n,&m);
//给数组赋值
for (i=0;i<n;i++)
a[i] = i+1;
for (i=0;i<m;i++)
{
scanf("%d %d",&pi,&qi);
if(pi==1)//a[qi-1]~a[n-1]升序排列
bubblesort(&a[qi-1],n-qi+1,1);
else
bubblesort(a,qi,0);
}
//输出结果
for (i=0;i<n;i++)
{
if(i<n-1)
printf("%d ",a[i]);
else
printf("%d",a[i]);
}
return 0;
}