7-91数组12:循环移位(30分)
定义一个有10个元素的整型一维数组a,输入10个数存于该一维数组,将一维数组中元素向左循环移位n位,n由键盘输入,最后将移位完的10个元素输出
输入格式:
输入数据有两行,第一行输入10个整数,空格间隔,赋值给数组,第二行输入n(系统保证1<=n<=8)。
输出格式:
输出移位完的数组,元素之间用空格间隔
输入样例:
样例输入
12345678910
3
①结尾无空行
输出样例:
样例输出
45678910123
①结尾无空行
按位置依次输出即可:
#include<stdio.h>
int main()
{
int i,n,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&n);
for(i=n;i<10;i++){
printf("%d ",a[i]);
}
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
return 0;
}
/*1 2 3 4 5 6 7 8 9 10
3*/
#include<stdio.h>
#include<string.h>
void reverse(char a[],int start,int end){
int temp;
for(int i=start;i<(start+end+1)/2;i++){
temp=a[i];
a[i]=a[start+end-i];
a[start+end-i]=temp;
}
}
void move(char a[],int n){
int length=strlen(a);
reverse(a,0,n-1);
reverse(a,n,length-1);
reverse(a,0,length-1);
}
int main(){
char a[10];
int n=0;
scanf("%s",a);
scanf("%d",&n);
move(a,n);
printf("%s",a);
return 0;
}