#define N 20 fun(int a[],int n,int m) { int i; for(i=m;i>=n;

问题描述:

#define N 20 fun(int a[],int n,int m) { int i; for(i=m;i>=n;i--) a[i+1]=a[i]; return a[a+1]; } main
#define N 20
fun(int a[],int n,int m)
{ int i;
for(i=m;i>=n;i--)
a[i+1]=a[i];
return a[a+1];
}
main()
{
int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i
1个回答 分类:综合 2014-12-16

问题解答:

我来补答
你 的 “return a[a+1];”这里有错误.貌似去掉那一行也行.
你定义了容量为20的整形数组 a[20],初始化时后10个元素值为0,前10个元素值依次为1-10
你调用了fun(int a[],int n,int m)函数,传入参数a的地址,2和9
在fun函数里面
当m大于n时数组元素向右移动位置.
然后m自减,重新测试移位条件..也就是上一步操作了
所以根据传入的参数可以知道
把数组a从下标为9开始向右移位,一直到下标为1停止移位.
fun()函数结束
得到的移动过某些元素位置的数组a
a[0]=1,
a[1]=2,
a[2]=3,
a[3]=3,
a[4]=4,
a[5]=5,
a[6]=6,
a[7]=7,
a[8]=8,
a[9]=9,
a[10]=10,
a[11]=0,
a[12]=0,
...
a[19]=0,
 
 
展开全文阅读
剩余:2000