求解:改变数组元素排序的问题
如下:
int a[8]={1,2,3,4,5,6,7,8};
int b[8];
int c;
实现以下功能:
当c=0时,b[8]={1,2,3,4,5,6,7,8};
当c=1时,b[8]={2,3,4,5,6,7,8,1};
当c=2时,b[8]={3,4,5,6,7,8,1,2};
以此类推
[解决办法]
#include <iostream>
using namespace std;
void circular(int a[],int n,int b[],int c)
{
for(int i=0;i<n;++i)
{
b[(i-c+n)%n]=a[i];
}
}
void print(int a[],int n)
{
for(int i=0;i<n;++i)
{
printf("%d\t",a[i]);
}
printf("\n");
}
int main()
{
int a[8]={1,2,3,4,5,6,7,8};
int b[8];
int n=sizeof(a)/sizeof(a[0]);
print(a,n);
circular(a,n,b,0);
print(b,n);
circular(a,n,b,1);
print(b,n);
circular(a,n,b,2);
print(b,n);
return 0;
}