[问答题]
请编写函数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**********/
-
相关试题
-