c语言的问题 tk274填空

来源:百度知道 编辑:UC知道 时间:2024/05/19 22:09:32
本程序通过调用函数invert()将数组a中的元素头尾倒置过来。
例如:若倒置前数组a中原来的元素为1,3,5,2,4和6,则头尾倒置后数组a的元素变为6,4,2,5,3和1。
假设数组a的初值就是1,3,5,2,4,6这六个数,在程序运行时输入。请将源程序补充完整,要求得到正确的结果。注意在答题过程中不得对源程序增行或删行,也不得更改程序的结构。

#include <stdio.h>
#define N 6
void invert(s,i,j)
int *s,i,j;
{
int t;
if(i<j)
{
t=*(s+i);
*(s+i)=*(s+j);
*(s+j)=t;
invert(s,_____(1)_____,j-1);
}
}
main()
{
int a[N],i;
for(i=0;i<N;i++)scanf("%d",a+i);
_____(2)_____ ;
for(i=0;i<N;i++)printf("%d ",a[i]);
printf("\n");
}

#include <stdio.h>
#define N 6
void invert(s,i,j)
int *s,i,j;
{
int t;
if(i<j)
{
t=*(s+i);
*(s+i)=*(s+j);
*(s+j)=t;
//invert(s,_____(1)_____,j-1);
invert(s,i+1,j-1);
}
}
main()
{
int a[N],i;
for(i=0;i<N;i++)scanf("%d",a+i);
//_____(2)_____ ;
invert(a,0,N-1);
for(i=0;i<N;i++)printf("%d ",a[i]);
printf("\n");
}