[问答题]

请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p~n-1(p<n-1)的数组元素平移到数组的前面。
  例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,的值为6。移动后,一维数组的内容应为7,8,9,10,11,12,13,14,15,1,2,3,4,5,6。
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
/**********code.c**********/
#include <stdio.h>
#define N 80
void fun(int*w,int p,int n)
{
   
}
void 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 original data: ");
   for(i=0;i<n;i++)
   printf("=",a[i]);
   printf(" Enter p: ");
   scanf("%d",&p);
   fun(a,p,n);
   printf(" The data after moving: ");
   for(i=0;i<n;i++)
   printf("=",a[i]);
   printf(" ");
   NONO();
}
void NONO ()
{
/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
   int j,k,p;
   FILE *rf,*wf;
   rf = fopen("in.dat","r");
   wf= fopen("out.dat","w");
   for(j=0;j<10;j++)
   {
      int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
      fscanf(rf, "%d",&p) ;
      fun(a,p,15);
      for(k=0;k<15;k++)        
           fprintf(wf,"M",a[k]);
      fprintf(wf," ");
   }
   fclose(rf);
   fclose(wf);
}
/**********-code.c**********/
/**********indat**********/
1
2
3
4
5
6
7
8
9
10
/**********-indat**********/
/**********outdat**********/
  2   3   4   5   6   7   8   9  10  11  12  13  14  15   1
  3   4   5   6   7   8   9  10  11  12  13  14  15   1   2
  4   5   6   7   8   9  10  11  12  13  14  15   1   2   3
  5   6   7   8   9  10  11  12  13  14  15   1   2   3   4
  6   7   8   9  10  11  12  13  14  15   1   2   3   4   5
  7   8   9  10  11  12  13  14  15   1   2   3   4   5   6
  8   9  10  11  12  13  14  15   1   2   3   4   5   6   7
  9  10  11  12  13  14  15   1   2   3   4   5   6   7   8
 10  11  12  13  14  15   1   2   3   4   5   6   7   8   9
 11  12  13  14  15   1   2   3   4   5   6   7   8   9  10
/**********-outdat**********/

参考答案与解析:

相关试题

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