| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 560 人关注过本帖
标题:用指针移动数的问题!
只看楼主 加入收藏
maxam0128
Rank: 2
等 级:论坛游民
帖 子:37
专家分:10
注 册:2011-10-9
结帖率:75%
收藏
已结贴  问题点数:5 回复次数:6 
用指针移动数的问题!
原题是这样的:
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数

#include<stdio.h>
#define n 50
int main()
{
    int m,i,j,a[n],t;
    int *p;
    for(i=0;i<n;i++)
    a[i]=i+1;
    p=a;
    for(i=0;i<n;i++)
    printf("%d ",*(p+i));
    printf("\n");
    scanf("%d",&m);
    if(m<0&&m>n)
    printf("error");
    else
    {
        
        for(i=0;i<m;i++)
        {
            for(j=0;j<n-1;j++)
            {
            t=*(p+n-1);
            *(p+n-j-1)=*(p+n-j-2);
            }
            *p=t;
        }
    }
    for(i=0;i<n;i++)
    printf("%d ",*(p+i));   
}为什么的最后一个数不见了...
搜索更多相关主题的帖子: 移动 include 
2011-10-26 21:35
续写忧伤qcb
Rank: 2
等 级:论坛游民
帖 子:8
专家分:11
注 册:2011-10-14
收藏
得分:5 
for(i=0;i<m;i++)
        {
            t=*(p+n-1);
            for(j=0;j<n-1;j++)
            {
            //t=*(p+n-1);
            *(p+n-j-1)=*(p+n-j-2);
            }
            *p=t;
t=*(p+n-1)每次一次for循环都会赋值,改成上面的就OK了
2011-10-26 22:22
maxam0128
Rank: 2
等 级:论坛游民
帖 子:37
专家分:10
注 册:2011-10-9
收藏
得分:0 
回复 2楼 续写忧伤qcb
真是谢谢啊...
2011-10-26 22:39
续写忧伤qcb
Rank: 2
等 级:论坛游民
帖 子:8
专家分:11
注 册:2011-10-14
收藏
得分:0 
回复 3楼 maxam0128
呵呵,不客气,共同学习,共同进步嘛
2011-10-26 22:40
Y_Jo_1
Rank: 4
等 级:业余侠客
帖 子:59
专家分:215
注 册:2011-10-20
收藏
得分:0 
t=*(p+n-1);

移到for外面
2011-10-26 23:16
penghao511
Rank: 2
来 自:安徽
等 级:论坛游民
帖 子:23
专家分:25
注 册:2011-9-1
收藏
得分:0 
第13行:if(m<0 && m>n)应该改为:if(m<0 || m>n)
2011-10-27 14:35
maxam0128
Rank: 2
等 级:论坛游民
帖 子:37
专家分:10
注 册:2011-10-9
收藏
得分:0 
回复 6楼 penghao511
嗯嗯..多谢指出,真不应该犯这种低级的错误...
2011-10-27 20:41
快速回复:用指针移动数的问题!
数据加载中...
 
   



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

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