|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- /****************
- 题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
- *****************/
- #include<stdio.h>
- #if(0)
- int main()
- {
- int i,k,m;
- int a[6]={1,2,3,4,5,6};
- printf ("后移:");
- scanf ("%d",&m);
- for (i=0;i<3;i++)
- {
- k=a[i];a[i]=a[i+m];a[i+m]=k;
- }
- for (i=0;i<6;i++)
- {
- printf("%d",a[i]);
- }
- }
- #endif
- #if(1)
- int main()
- {
- int number[6]={1,2,3,4,5,6},n,m,i;
- printf("the total numbers is:");
- scanf("%d",&n);
- printf("back m:");
- scanf("%d",&m);
- //for(i=0;i<n-1;i++)
- //scanf("%d,",&number[i]);
- //scanf("%d",&number[n-1]);
- move(number,n,m);
- for(i=0;i<n-1;i++)
- printf("%d,",number[i]);
- printf("%d",number[n-1]);
- }
- int move(array,n,m)
- int n,m,array[6]; // 全局变量? 为什么只有在这里定义是可行的?
- {
- int *p,array_end;
- array_end=*(array+n-1);
- for(p=array+n-1;p>array;p--)
- *p=*(p-1);
- *array=array_end;
- m--;
- if(m>0) move(array,n,m);
- }
- #endif
复制代码
注释部分不明白,我的理解是全局变量,但是尝试放到别的位置,都不可行,
有没有知道的,帮忙解释一下,感谢!
这是一种特殊的写法,第一次见。
不是全局变量,实际上就是
int move(int array[6], int n, int m)
等于
int move(array,n,m)
int n,m,array[6]; // 全局变量? 为什么只有在这里定义是可行的?
它分开来写了。
|
|