| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 760 人关注过本帖
标题:为什么输出的奇数只给我2个?
取消只看楼主 加入收藏
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
结帖率:85.29%
收藏
已结贴  问题点数:20 回复次数:4 
为什么输出的奇数只给我2个?
#include <stdio.h>
#include <stdlib.h>

#define NUM 20
 
void getdata(int *a )
{ int i ;
  for(i=0;i<=NUM;i++)
    a[i]=rand()%101;}   
   
void priarr(int *b,int x)
{int i;
 for(i=0;i<x;i++)
 {printf("%5d", b[i] );
  if ((i+1)%10==0)printf("\n");}
 printf("\n");}  

void odd(int *a,int *d)
{int i,j;
 for(i=0,j=0;i<NUM;i++)
  {if(a[i]%2!=0){d[j]=a[i];j++;}}
 }

main()
{int j,p[NUM], q[j];
 getdata(p);
 printf("output %d random numbers:\n",NUM);
 priarr(p,NUM);
 odd(p,q);
 printf("output odd numbers:\n");
 priarr(q,j);
 system("PAUSE");   
 return 0;
}
程序读入随机数组后,但是输出的奇数却只有两个。自己看了半天了,还是不知道哪儿出了问题,貌似是j++没有运作,可是怎么改呢?
 
搜索更多相关主题的帖子: void 101 include numbers 
2011-07-03 07:48
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 2楼 hjywyj
就是用这个数组来放那最后想要的奇数
2011-07-03 08:22
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 4楼 hjywyj
我也看到了问题在j,可是我不会改呀。
我是想把odd函数里的那个d的数组,也就是放得到的奇数的那个数组传回主函数去,可是我不知道怎么表达。问题也正是在这儿,因为没有表达好,所以最后输出来的奇数的数组永远都只有2个。而且,为什么是2个而不是3个4个或是其他个?哪句指令让这台傻机子这么干活来着呢?我都没看出毛病在哪儿。。。
2011-07-03 10:09
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 5楼 ansic
谢谢你对我的两道题目均作了回复,可是,我怎么看不明白你的代码。我只能看懂C,多加了其他语言的命令我看不懂。。。。。
2011-07-03 12:05
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
万分感谢!
2011-07-05 18:39
快速回复:为什么输出的奇数只给我2个?
数据加载中...
 
   



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

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