2025-04-01 09:52:18 +08:00

58 lines
1.5 KiB
C

/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
请编写函数 fun, 函数的功能是: 移动一维数组中的内容; 若数组中有 n 个整数,
要求把下标从 0 到 p(含 p,p 小于等于 n-1 )的数组元素平移到数组的最后,最后
输出移动后的数组。
示例:
【请输入数组元素的个数: 】10
【请输入10 个整数:】1 2 3 4 5 6 7 8 9 10
【请输入p 的值 (p <= 9):】 5
【移动后的数组为: 】7 8 9 10 1 2 3 4 5 6
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数 main 或其它函数中给出的内容,仅
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
void fun(int *w, int p, int n)
{
int temp[p + 1];
/**********Program**********/
int i,k=0;
for(i=0;i<p+1;i++){
temp[i] = w[i];
}
for(;i<n;i++){
w[k++]=w[i];
}
for(i=0;k<n;k++){
w[k]=temp[i++];
}
/********** End **********/
}
int main()
{
int n, p;
printf("【请输入数组元素的个数: 】");
scanf("%d", &n);
int a[n];
printf("【请输入%d 个整数:】", n);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
printf("【请输入p 的值 (p <= %d): 】", n - 1);
scanf("%d", &p);
fun(a, p, n);
printf("【移动后的数组为: 】");
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}