回 帖 发 新 帖 刷新版面

主题:[讨论]帮帮忙~~一道题目!

数组输出是:1 3 0 7 0 0 11 0 0 17
我想这样输出: 1 3 7 11 17
就这样把0全部剔除掉。应该怎么改!谢谢~~~~~
#include <stdio.h>
#define N 10
void transport(int *a,int b[]);
void print(int *a,int b[]);
void main()
{
    int a[N]={1,3,6,7,8,10,11,14,16,17},b[N]={0};
    transport(a,b);
    print(a,b);
}
void transport(int *a,int b[])
{
    int i;
    for(i=0;i<N;i++)
    {
        if(a[i]%2!=0)
        {
            b[i]=a[i];
        }
    }
}
void print(int *a,int b[])
{
    int i,j;
    for(i=0;i<N;i++)
    {
        printf("%3d",a[i]);
    }
    printf("\n");
    for(j=0;j<N;j++)
    {
        printf("%3d",b[j]);
    }
    printf("\n");
}

回复列表 (共3个回复)

沙发

可能没理解你的意思
在printf("%3d",b[j]);之前加一个if(b[j])不就行了吗?

板凳

void transport(int *a,int b[])
{
    int i,j;
    for(i=0,j=0;i<N;i++)
    {
        if(a[i]%2!=0)
        {
            b[j++]=a[i];
        }
    }
}

3 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

您尚未登录,请登录后再回复。点此登录或注册