AC代码:
/*《C语言程序设计》江宝钏主编-习题7-7-循环数组
Description
编写程序,将一维数组中的元素向右循环移动N次。
Input
第一行整数n,表示数组大小为n
第二行,n个数,表示数组中的n个元素。
第三行,整数N,表示数组向右移动N次。
Output
移动后的数组元素,每个元素后跟空格。
Sample Input Copy
5
1 2 3 4 5
2
Sample Output Copy
4 5 1 2 3
*/
#include <stdio.h>
int main(){
int n,a[100],N,tmp; //警告:此处必须适当定义数组大小a[100],切不可定义为a[n]。
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
scanf("%d",&N);
for(int j=0;j<N;j++){
tmp=a[n-1];
for(int i=n-1;i>=0;i--){ //警告:由于此处为循环以移动,故必须再加一个for循环
a[i]=a[i-1];
}
a[0]=tmp;
}
for(int i=0;i<n;i++){
printf("%d ",a[i]);
}
return 0;
}
//标程:
#include <stdio.h>
int main(void)
{
int a[100],i,j,b,x;
scanf("%d",&i);
for (b=0;b<i;b++)
{
scanf("%d",&a[b]);
}
scanf("%d",&j);
for (;j>0;j--) //重点注意这两for循环
{
x=a[i-1];
for (b=i-1;b>=0;b--)
{
a[b]=a[b-1];
}
a[0]=x;
}
for (b=0;b<i;b++)
{
printf ("%d ",a[b]);
}
return 0;
}