(用指標方法處理)有n個整數,使前面各數順序向後移m個位置,最後m個數變成最前面m個數。編寫一個函式實現上述功能,在主函式中輸入n個整數,並輸出調整後的n個數
第一種方法:指標法
#include<stdio.h>
#include<stdlib.h>
int w(int *d,int e,int g)
{
int i,j,t;
int *r;
j=0;
for(i=0;i<g;i++)
{
t=*(d+i);
*(d+i)=*(d+e-g+j);
*(d+e-g+j)=t;
j++;
}
return *d;
}
int main()
{
int a[100];
int i,j,k,n,m;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
k=n;
w(a,k,m);
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
system("pause");
return 0;
}
第二種方法:陣列法
#include<stdio.h>
#include<stdlib.h>
void w(int d[],int e,int g)
{
int i,j,t;
//int *r;
j=e;
for(i=0;i<g;i++)
{
t=d[i];
d[i]=d[j-1];
d[j-1]=t;
j--;
}
for(i=0;i<e;i++)
printf("%d ",d[i]);
printf("\n");
//return *d;
}
int main()
{
int a[100];
int i,j,k,n,m;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
k=n;
w(a,k,m);
/* for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");*/
system("pause");
return 0;
}