解题思路:
这道题要求对于一个数组进行循环移位操作,讲真这是我在这门课的NOJ中遇到的我认为最简单的一个题了。 没啥需要考虑的思路,输入数组,for循环进行k次右移,输出数组就OK了。 具体操作见代码,代码中有部分注释。
题解代码:
#include<stdio.h>
#include<stdlib.h>
void CreatArray(int a
[], int n
){
for(int i
=0;i
<n
;i
++){
scanf("%d",&a
[i
]);
}
}
void RightShift(int a
[], int n
, int k
){
int temp
;
for(int i
=0;i
<k
;i
++){
temp
= a
[n
-1];
for(int j
=n
-1;j
>0;j
--){
a
[j
] = a
[j
-1];
}
a
[0] = temp
;
}
}
void PrintArray(int a
[], int n
){
for(int i
=0;i
<n
;i
++){
printf("%d ",a
[i
]);
}
}
int main(){
int a
[100]={0},n
,k
;
scanf("%d %d",&n
,&k
);
CreatArray(a
,n
);
RightShift(a
,n
,k
);
PrintArray(a
,n
);
return 0;
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-54054.html