| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 959 人关注过本帖
标题:不知道错在何处,帮忙看看啊!
取消只看楼主 加入收藏
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
收藏
 问题点数:0 回复次数:4 
不知道错在何处,帮忙看看啊!

问题:将数组a中的奇数存到数组b中,并输出! #include <stdio.h> #include <stdlib.h> #define N 100

void main() { int *a,*b,i,j,t; a=(int*)malloc(N*sizeof(int)); b=(int*)malloc(N*sizeof(int)); for(i=0;i<N;i++){ *(a+i)=0; *(b+i)=0; } for(i=0;i<N;i++) scanf("%d",a+i);

for(i=0,j=0;i<N;i++){ if(*(a+i)%2!=0){ *(b+j)=*(a+i); j++; } } t=j; for(i=0;i<t;i++) printf("%d\t",*(b+i)); } 小弟是用vc编译的,就是得不到正确答案,不知道以上程序错在何处,请指教,谢谢!!!

搜索更多相关主题的帖子: 正确答案 include 
2005-01-17 10:32
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
收藏
得分:0 
VC是支持malloc函数的,它在stdlib.h文件中定义的。
上面那个程序是编译通过了,只是得不到想要的结果,我怀疑是逻辑有错,但又找不出来。
还希望各位兄弟姐妹再给我看看,不甚感激!!!
2005-01-17 10:50
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
收藏
得分:0 
我按你说的试着去把N改为10了,但还是无法得到正确的结果。比如{1,2,3,4,5,6,7,8,9,10}按程序的要求应该输出1,2,3,4,5。但是不知道为什么就是只输出一个1,我试着用printf的方法打印检查,就是循环体只运行一次,不明白啊!!!
另外,那个忘了用free(void *)函数,多谢提醒,不然多运行几次把内存都耗尽了^_^
2005-01-17 11:13
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
收藏
得分:0 

怎么大家都说行啊,我就是不行啊,郁闷! 发个TC版的,请各位帮忙调试一下,谢谢! 我已经编译通过了,就是无法得到正确的结果,还是怀疑逻辑问题! #include <stdio.h> #include <alloc.h> #define N 10

void main() { int *a,*b,i,j,t; a=(int*)malloc(N*sizeof(int)); b=(int*)malloc(N*sizeof(int)); for(i=0;i<N;i++){ *(a+i)=0; *(b+i)=0; } for(i=0;i<N;i++) scanf("%d",a+i);

for(i=0,j=0;i<N;i++){ if(*(a+i)%2!=0){ *(b+j)=*(a+i); j++; } } t=j; for(i=0;i<t;i++) printf("%d\t",*(b+i)); free(a); free(b); }

2005-01-17 11:19
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
收藏
得分:0 
对不起,各位兄弟姐妹!我很惭愧!
我的那个没有保存,然后编译的都是以前写的,郁闷啊!
不好意思!!!
2005-01-17 11:22
快速回复:不知道错在何处,帮忙看看啊!
数据加载中...
 
   



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

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