万能百科  > 所属分类  > 

请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p到n-1(p

请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p到n-1(p≤n-1)的数组元素平移到数组的前面。

例如,一维数组中的原始内容为1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,p的值为6。移动后,一维数组中的内容应为7,8,9,10, 11,12,13,14,15,1, 2, 3, 4, 5, 6。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include<stdio.h>

define N 80

void fun(int *w,int p,int n)

{

}

main()

{

int a[N]={1,2,3,4,5,6,7,8,9,10,11, 12,13,14,15};

int i,p,n=15;

printf("The original data:\n");

for(i=0;i<n;i++)

printf("%3d",a[i]);

printf("\n\nEnter p:");

scanf("%d",&p);

fun(a,p,n);

printf("\nThe data after moving:\n");

for(i=0;i<n;i++)

printf("%3d",a[i]);

printf("\n\n");

}

正确答案:

void fun(int *w int p int n) { int i.jt; for(i=p;i=n-1;i++) /*循环右移n-p次*/ {t=w[n-11; for(j=n-2;j>=0;j--) /*实现循环右移*/ w[j+1]=w[j]; w[0]=t; }void fun(int *w, int p, int n) { int i.j,t;

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签