首页 > 编程知识 正文

c语言循环数组,移动一堆数组中的内容

时间:2023-05-06 06:46:26 阅读:11707 作者:833

问题说明:

编写将一维数组中的元素向右循环移动n次的程序。

请定义函数,使数组的元素向右循环一位。 最右边的元素移动到最左边,剩下的元素移动到右边一位。

输入说明:

第一行中的整数n,表示数组的大小为n

第二行,n个数表示数组中的n个元素。

第三行,整数n表示数组向右移动n次。

输出说明:

移动后的数组元素。 两个元素之间用空格分隔。 行首和行尾没有多余的空间。

解决方法:按部就班定义函数,逐个移动元素

代码如下。

# include cstdio # include cmath # includeiostreamusingnamespacestd; voidmove(intn,int arr[]; int main () { int arr[10000]; int n; cinn; for(intI=0; in; I ) { cinarr[i]; (} int N; cinN; for(intI=1; i=N; I ) ) move(n,arr ); }for(intI=0; in; I () if ) I!=n-1 ) printf('%d ',arr[i]; elseprintf('%d ',arr[i] ); }返回0; }voidmove(intn,int arr[] ) ) inttmp=arr(n-1 ); for(intI=n-1; i0; I--}{arr[I]=arr[I-1]; } arr[0]=tmp; )方法)投机改变输出printf,得出移动后的序列,但序列本质没有移动

# include cstdio # include cmath # includeiostreamusingnamespacestd; int main () { int arr[10000]; int n; cinn; for(intI=0; in; I ) { cinarr[i]; (} int m; cinm; m=m%n; //m小于n,确保防止序列越界的for (inti=0; in; I({printf(%d ),arr ) )-mI ) %n ); if(in-1 ) cout '; }返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。