请编写函数fun,函数的功能是:移动一维数组中的内容:若数组中有n个整数,要求把下标从0到P(含p,p小于等于n-1)的数组元素平移到数组的最后。 例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10:p的值为3。移动后,一维数组

admin2020-10-26  45

问题 请编写函数fun,函数的功能是:移动一维数组中的内容:若数组中有n个整数,要求把下标从0到P(含p,p小于等于n-1)的数组元素平移到数组的最后。
    例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10:p的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。
    注意:部分源程序在文件PROGl.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#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;void NONO();
  printf("The origina1 data:\n");
  for(i=0;ia);
  printf("\n\nEnter p:");scanf("%d",
&p);
  fun(a,p,n);
  printf("\nThe data after moving:
\n");
  for(2=0;ia),
  printf("\n\n");
  NONO();
}
void NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。  */
    FILE*rf,*wf;int a[N],i,j,p,n;
    rf=fopen("in.dat","r");
    wf=fopen("out.dat","w");
    for(i=0;  i<5;  i++)  {
    fscanf(rf,  "%d%d",  &n,  &p);
    for(j=0;j"%d",  &a[j]);
    fun(a,p,n);
    for(j=0;  j(wf,"%30",a[j]);fprintf(wf,"\n");
  }
  fclose(rf);  fclose(wf);
  }

选项

答案int i,j=0,b[N]; for(i=p+1;i
解析 (1)本题中首先将数组内容拷贝到一个临时一维数组b。
    (2)然后,从指定下标的下个数组元素开始向前移动。
    (3)最后,接着拷贝临时数组b中的第一个下标开始到指定的下标的元素为止。
转载请注明原文地址:https://kaotiyun.com/show/xD3p777K
0

最新回复(0)