/*
输入6个数比如:1 4 7 3 5 2.可以得到
1 4 7 3 5 2
2 1 4 7 3 5
5 2 1 4 7 3
3 5 2 1 4 7
7 3 5 2 1 4
4 7 3 5 2 1
*/
#include<stdio.h>
void Paixu(int a[],int m,int n)
{
int i;int * p;p=a;
for(i=0;i<n-m;i++)
{
*(p+n+i)=*(p+i);
}
for(i=0;i<n;i++)
{
*(p+i)=*(p+n-m+i);
}
for(i=0;i<n-m;i++)
{
*(p+n+i)=0;
}
}
void ReductionPaixu(int a[],int m,int n)
{
int i,j;
int *p;p=a;
for(i=0;i<m;i++)
{
*(p+n+i)=*(p+i);
}
for(i=0;i<n;i++)
{
*(p+i)=*(p+m+i);
}
for(i=0;i<m;i++)
{
*(p+n+i)=0;
}
}
void main()
{
int n;int a[100];int b[100][100];
printf("请输入要输入的数组长度size\n");
scanf("%d",&n);
int i;int j;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("*********************************\n");
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n可以得到:\n");
int k;
for(i=0;i<n;i++)
{
Paixu(a,i,n);
for(j=0,k=0;j<n;j++,k++)
{
b[i][j]=a[k];
}
ReductionPaixu(a,i,n);
//这里要有个还原!!!
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",b[i][j]);
printf("\n");
}
}刚刚写的!运行没有问题