请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p~n-1(p<n-1)的数组元素平移到数组的前面。 例如,一维数组中的原始内容为1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,

admin2010-11-26  44

问题 请编写函数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的花括号中填入所编写的若干语句。
   [试题源程序]
   #inciude  <stdio.h>
   #define  N 80
   void  fun(int *w, int p, int n)
   {
   }
   main()
   {
   int a[N]=(i, 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);
   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);
   printf("\n\n");
   }

选项

答案void fun(int *w, int p, int n) { int i, J, t; for(i=p; i<=n-i; i++) { t=w[n-1]; for(j=n-2; j>=0; j--) w[j+1]=w[j]; w[0]=t; } }

解析
转载请注明原文地址:https://kaotiyun.com/show/kPID777K
0

最新回复(0)