| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1401 人关注过本帖
标题:把整数数组中所有0移到末尾
只看楼主 加入收藏
chychychychy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-12-7
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
把整数数组中所有0移到末尾
把整数数组中的所有0移到末尾
 题目内容
1.定义函数void  move(int *p,int nSize);将数组p中的0都移至数组末尾,将非0的移至开始(保持原来的顺序)不变。
2.在main函数中调用move函数

输入要求
第一行为整数n,表示数组的长度
第二行为n个整数

输出要求
移动后的数组
printf("%3d",…)

搜索更多相关主题的帖子: 函数 数组 移到 int 整数 
2019-12-07 14:57
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
int* r = p;
for( const int* q=p; q!=p+nSize; ++q )
    if( *q != 0 )
        *r++ = *q;
for( ; r!=p+nSize; ++r )
    *r = 0;

手机上纯手打,没验证过,仅供参考
2019-12-07 15:36
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <stdlib.h>

void move(int *p,int nSize);

int main()
{
    int n,i;
    int *a=NULL;
    printf("请输入数据个数:");
    scanf("%d",&n);
    a=calloc(n+1,sizeof(int));
    printf("请输入数据:");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);

    move(a,n);
    return 0;
}

void move(int *p,int nSize)
{
    int a[nSize],i=0,j=0,k=0;
    for(i=0;i<nSize;i++)
    {
        if(p[i]==0)
            k++;
        else
            a[j++]=p[i];
    }

    for(i=0;i<j;i++)
        printf("%3d",a[i]);
    for(i=0;i<k;i++)
        printf("%3d",0);

}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-12-07 15:48
快速回复:把整数数组中所有0移到末尾
数据加载中...
 
   



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

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