| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 312 人关注过本帖
标题:请各位大侠帮帮我啊 谢谢了
只看楼主 加入收藏
爱好者呵呵
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-9-16
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
请各位大侠帮帮我啊 谢谢了
有n个整数,使前面的n-m个数顺序向后移m个位置,后面的m个数变成最前面的m个数。(m<n)
2010-09-16 21:02
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:10 
程序代码:
#include<stdio.h>
#define N 20
void main()
{
    int n,i,a[N],b;
    int yiwei(int *p,int k);/*函数声明*/
    printf("请输入整数n:\n");
    scanf("%d",&n);
        b=n-1;
    printf("请输入n个数组元素:\n");

    for(i=0;i<n;i++)/*输入n个数组元素*/
        scanf("%d",&a[i]);
    yiwei(a,b);/*函数调用*/
    printf("改变后的数为:\n");
    for(i=0;i<n;i++)
        printf("%4d",a[i]);
    printf("\n");
}
int yiwei(int *p,int t)/*函数定义*/
{
    int m,i,*q;
    q=p;
    printf("请输入整数m:\n");
    scanf("%d",&m);
    for(i=0;i<=t;i++)/*把所有数后移m位*/
    {
        *(q+m+t)=*(q+t);
        q--;
       
    }
    printf("验证\n");/*验证是否后移成功*/
    for(i=0;i<t+m+1;i++)
    {
        printf("%2d",*p);
        p++;
    }
    printf("\n");
        q=p-m-t-1;/*在上个循环中p已经指向最后再加一得位置所以要使p减去相关数,若没有验证循环直接写成q=p*/
    for(i=t+1;i<=t+m;i++)/*把指定的m个元素前移到数组起始位置*/
    {
        *q=*(q+t+1);
       
        q++;
    }
    return 0;
}


    

    
这是我以前做的!楼主参考一下
2010-09-16 21:48
TGM316750432
Rank: 2
来 自:河南周口
等 级:论坛游民
帖 子:56
专家分:97
注 册:2010-8-27
收藏
得分:10 
最后一个数保存,然后把数组中的0~n-2全部后移一位,最后一位放数组首位···    进行m次
2010-09-16 22:33
快速回复:请各位大侠帮帮我啊 谢谢了
数据加载中...
 
   



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

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