| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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]; //  全局变量? 为什么只有在这里定义是可行的?  
 
它分开来写了。 
 
 
 |   
 
 
 
 |