| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 407 人关注过本帖
标题:数组输出问题帮忙纠下错
只看楼主 加入收藏
无雨无星
Rank: 2
等 级:论坛游民
帖 子:28
专家分:37
注 册:2010-6-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
数组输出问题帮忙纠下错
题目为:10、一维数组中存有奇数和偶数,将奇数在奇数的位置上从大到小排序,将偶数在偶数的位置上“前后翻转”。
例如:处理前char a[10]={1,8,12,2,5,6,7,10,9,4},
处理后char a[10]={9,4,10,6,7,2,5,12,1,8}
我的程序不报错,但是不出结果,为什么呢?
#include"stdio.h"
void main()
{
    int a[10]={1,8,12,2,5,6,7,10,9,4};
    int b[10]={0};
    int c[10]={0};
    int i,j,k,p,m,n,d;
    i=j=k=p=m=n=0;d=9;
    for(i=0;i<10;i++)
    {
        if(a[i]%2==0)
        {
            b[j]=a[i];
            a[i]=0;
            j++;
        }
        if(a[i]%2!=0)
        {
            c[k]=a[i];
            a[i]=1;
            k++;
        }
    }/*将偶数放进数组B,奇数放进数组C,奇数为1偶数为0所以a[10]={1,0,0,0,1,0,1,0,1,0}*/
    for(i=0;i<9;i++){
        for(p=0;p<9-i;p++)
        { if(c[p]>c[p+1])
        {m=c[p];
            c[p]=c[p+1];
            c[p+1]=m;
    }}}/*冒泡排序,此时C数组为c[10]={0,0,0,0,0,0,1,5,7,9}*/
        n=j-1;/*到这里设断点查都没问题,B数组为b[10]={8,12,2,6,10,4},n值为5*/
    /*就从这里开始*/
     for(i=0;i<10;i++)
        {
            if(a[i]==0){a[i]=b[n];n--;printf("%2d",a[i]);}
            if(a[i]==1){a[i]=c[d];d--;printf("%2d",a[i]);}
        }
     /*数组还原时出了问题?*/
}
搜索更多相关主题的帖子: 输出 
2010-07-14 16:36
delong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:126
注 册:2010-6-9
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

这是我运行的结果,没什么问题呀!!!
2010-07-14 17:11
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
是啊,好像确实没什么问题

[ 本帖最后由 sunyh1999 于 2010-7-14 17:36 编辑 ]

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-14 17:35
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:20 
我加了换行,这样你就可以看得更清楚了:
程序代码:
#include"stdio.h"
void main()
{
    int a[10]={1,8,12,2,5,6,7,10,9,4};
    int b[10]={0};
    int c[10]={0};
    int i,j,k,p,m,n,d;
    i=0,j=0,k=0,p=0,m=0,d=0;d=9;
    for(i=0;i<10;i++)
    {
        if(a[i]%2==0)
        {
            b[j]=a[i];
            a[i]=0;
            j++;
        }
        if(a[i]%2!=0)
        {
            c[k]=a[i];
            a[i]=1;
            k++;
        }
    }/*将偶数放进数组B,奇数放进数组C,奇数为1偶数为0所以a[10]={1,0,0,0,1,0,1,0,1,0}*/
    for(i=0;i<9;i++){
        for(p=0;p<9-i;p++)
        { if(c[p]>c[p+1])
        {    m=c[p];
            c[p]=c[p+1];
            c[p+1]=m;
    }}}/*冒泡排序,此时C数组为c[10]={0,0,0,0,0,0,1,5,7,9}*/
        n=j-1;/*到这里设断点查都没问题,B数组为b[10]={8,12,2,6,10,4},n值为5*/
    /*就从这里开始*/
     for(i=0;i<10;i++)
        {
            if(a[i]==0){a[i]=b[n];n--;printf("%2d\n",a[i]);}
            if(a[i]==1){a[i]=c[d];d--;printf("%2d\n",a[i]);}
        }
     /*数组还原时出了问题?*/
}     


欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-14 17:40
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
其实没有错误的,只是程序输出的时候数字与数字之间没有空格,所以才会产生误解

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-14 17:41
无雨无星
Rank: 2
等 级:论坛游民
帖 子:28
专家分:37
注 册:2010-6-23
收藏
得分:0 
回复 5楼 sunyh1999
嘿,真奇怪了,我昨天在学校机房作时就显示不出来,回寝在自己电脑上也没运行成功,都用的VC6.0,现在又好使了,难道论坛有魔力不成???上传一下才能行?O(∩_∩)O~ 谢谢各位帮忙啦~
2010-07-14 22:17
快速回复:数组输出问题帮忙纠下错
数据加载中...
 
   



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

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