| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 567 人关注过本帖
标题:这个程序有两行看不懂啊,求大神
只看楼主 加入收藏
我是小菜鸟11
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-4-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
这个程序有两行看不懂啊,求大神
#include <stdio.h>
int main()
{
    void move(int [20],int,int);
    int number[20],n,m,i;
    printf("how many numbers?");
    scanf("%d",&n);
    printf("input %d numbers:\n",n);
    for (i=0;i<n;i++)
        scanf("%d",&number[i]);
    printf("how many place you want move?");
    scanf("%d",&m);
    move(number,n,m);
    printf("Now,they are:\n");
    for (i=0;i<n;i++)
        printf("%d  ",number[i]);
    printf("\n");
    return 0;
}
void move(int array[20],int n,int m)
{
    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);
}
倒数第四五行什么意思啊
搜索更多相关主题的帖子: void include numbers return 
2013-04-05 09:39
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:5 
把array数组中的元素向后移动一个位置,抛弃最后一个元素(第n个元素)。

重剑无锋,大巧不工
2013-04-05 09:43
我是小菜鸟11
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-4-5
收藏
得分:0 
回复 2楼 beyondyf
*p=*(p-1)是不是就是用前一个元素替代后一个元素
2013-04-05 09:47
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 

重剑无锋,大巧不工
2013-04-05 09:47
梅可伟梅可伟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:180
注 册:2013-3-11
收藏
得分:5 
#include <stdio.h>
 int main()
 {
     void move(int array[20],int,int);
     int number[20],n,m,i;
     printf("how many numbers?");
     scanf("%d",&n);
     printf("input %d numbers:\n",n);
     for (i=0;i<n;i++)
         scanf("%d",&number[i]);
     printf("how many place you want move?");
     scanf("%d",&m);
     move(number,n,m);
     printf("Now,they are:\n");
     for (i=0;i<n;i++)
         printf("%d  ",number[i]);
     printf("\n");
     return 0;
 }
 void move(int array[20],int n,int m)
 {
     int *p,array_end;
     array_end=*(array+n-1);
     for (p=array+n-1;p>array;p--)//从arry[n-1]开始,一直到arry[0]全部向后移一个位置,
         *p=*(p-1);//等价于for(i=1;i<n;i++) P[n-i]=p[n-i-1];
     *array=array_end;
     m--;
     if (m>0) move(array,n,m);
 }
2013-04-05 10:19
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:5 
for (p=array+n-1;p>array;p--)//从arry[n-1]开始,一直到arry[0]全部向后移一个位置,
          *p=*(p-1);//等价于for(i=1;i<n;i++) P[n-i]=p[n-i-1];
进行移动过程中也要进行保存

Maybe
2013-04-05 10:48
bok002121
Rank: 2
等 级:论坛游民
帖 子:90
专家分:26
注 册:2012-11-11
收藏
得分:5 
把最后一个移到第一个
2013-04-05 11:12
快速回复:这个程序有两行看不懂啊,求大神
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023080 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved