【C语言】编写程序,将一维数组中的元素向右循环移动N次。
输入
第一行整数n,表示数组大小为n
第二行,n个数,表示数组中的n个元素。
第三行,整数N,表示数组向右移动N次。
输出
移动后的数组元素,每个元素后跟空格。样例输入5
1 2 3 4 5
2样例输出4 5 1 2 3 展开
程序如下:
#include <stdio.h>#include <stdlib.h>
main()
{
int *a,n,N,i,j,tmp;
printf("输入数组元素个数:");
scanf("%d",&n);
a=(int*)malloc(sizeof(int)*n);
printf("输入数组元素:");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("输入循环移动的位数:");
scanf("%d",&N);
printf("移位前数组:");
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
for(i=0,j=n-1;i<j;i++,j--)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
for(i=0,j=N-1;i<j;i++,j--)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
for(i=N,j=n-1;i<j;i++,j--)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
printf("移位后数组:");
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
free(a);
}
运行截图:
#include
这个表示什么,可以没有吗
函数malloc和free在该头文件中定义,如果去掉这个头文件,编译会出错。