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

admin2019-03-19  11

问题 请编写函数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。
    注意:部分源程序在文件PROG1.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,8r 9,10,
11,12,13,14,15);
    int i,p,n=15;void NONO  ();
    printf ("The original data:\n");
    for (i=0;   ia);
    printf ("\n\nEnter  p:”);scanf("%d",
&p);
    fun (a,p,n);
    printf ("\nThe data after moving:
\n");
    for (i=0;   ia);
    printf("\n\n");
}
    NONO();
}
  void NONO  ()
  {/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。  */
    FILE *rf,*wf; int a[N],i,j,pfn;
    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," %d",a[j]);fprintf (wf,"\n");
  }
  fclose (rf);  fclose (wf);
}

选项

答案1 int i, j=0, b[N]; 2 for (i=p+1; i
解析 该程序功能是移动一维数组中的内容。解题思路首先将字符串拷贝到一个临时的数组,然后将字符串进行前移操作,最后将由于前移覆盖掉的字符,由临时数组中拷贝到指定字符串。
转载请注明原文地址:https://jikaoti.com/ti/VXf0FFFM
0

最新回复(0)