《C语言程序设计》江宝钏主编-习题7-7-循环数组!!!

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;
}
发布了39 篇原创文章 · 获赞 7 · 访问量 3671

猜你喜欢

转载自blog.csdn.net/qq_45599068/article/details/104157934