| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1231 人关注过本帖
标题:问大家个 关于 c 的问题`````
只看楼主 加入收藏
guitarliukai
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-12-5
收藏
 问题点数:0 回复次数:21 
问大家个 关于 c 的问题`````
一个数组 是 a[4] a[0]=1,a[1]=2,a[2]=0,a[3]=4; 我想把 数组a 中非0的元素 放到一个新的数组里,即 b[0]=a[0],b[1]=a[1], b[2]=a[3] 也就是 把那个 a[2]=0 不赋给 数组b[2],而是把 非0的a[3] 赋给 b[2] 该怎么做````` 急啊``!!!!!!!!!!!
搜索更多相关主题的帖子: 问题 元素 
2005-04-02 23:01
shangmin
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-3-17
收藏
得分:0 
数组a是输入进去的还是定义好的,长短是不是定值?
2005-04-02 23:21
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
#include <stdio.h>
int main()
{
int a[10]={0,1,2,0,0,4,0,6,0,7};
int b[10];

int i,j;
   
    for(i=j=0;i<10;i++)
        if(a[i])
            b[j++]=a[i];
   
    for(i=0;i<j;i++)
        printf("%d\n",b[i]);
}

管他数组是变长的还是固定的呢,反正方法是一样的.

淘宝杜琨
2005-04-02 23:23
zilin
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-4-2
收藏
得分:0 

#include<stdio.h> main() { int i,j=0,d; int a[4]={1,2,0,4},b[4];

for(i=0;i<=3;i++) { if(a[i]) { b[j]=a[i]; j++; } } for(d=0;d<=j;d++) { printf("%d\n",b[d]); } system("PAUSE"); }

system("PAUSE");-----这句可以让你保存住运行页面,,如果你不是用TC的话~

无意求分~


随时可以找我哦~ QQ:77938821 litansiee@
2005-04-03 00:13
84531933
Rank: 1
等 级:新手上路
帖 子:31
专家分:2
注 册:2005-4-2
收藏
得分:0 
4楼的
for(d=0;d&lt;=j;d++)
   {
    printf("%d\n",b[d]);
   }


输出数组b,最后个数是随机的呀

2005-04-03 00:20
aniude
Rank: 2
等 级:新手上路
威 望:3
帖 子:231
专家分:0
注 册:2004-11-3
收藏
得分:0 
随机?

2005-04-03 00:27
skycanny
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-3-5
收藏
得分:0 
就是随机吧,b[4]没有被赋值过啊
2005-04-03 00:29
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
for(d=0;d&lt;=j-1;d++)
这样应该勉强得了吧

淘宝杜琨
2005-04-03 01:08
zilin
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-4-2
收藏
得分:0 

可以再加一个变量,记录下来a[i]=0 的次数

再把b[]的个数减去就好了~


随时可以找我哦~ QQ:77938821 litansiee@
2005-04-03 02:32
zilin
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-4-2
收藏
得分:0 

刚才想得麻烦了~不用添变量

这样也可以:让j的值在赋值之前变化:

#include<stdio.h> main() { int i,j=-1,d,k; int a[4]={1,2,0,4},b[4];

for(i=0;i<=3;i++) { if(a[i]) { j++; b[j]=a[i]; } } for(d=0;d<=j;d++) { printf("%d\n",b[d]); } system("PAUSE"); }

[此贴子已经被作者于2005-4-3 2:38:09编辑过]


随时可以找我哦~ QQ:77938821 litansiee@
2005-04-03 02:37
快速回复:问大家个 关于 c 的问题`````
数据加载中...
 
   



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

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