| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 498 人关注过本帖
标题:程序错在哪里该怎么修改?多谢
只看楼主 加入收藏
wangtao88
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2008-11-3
结帖率:70%
收藏
已结贴  问题点数:20 回复次数:6 
程序错在哪里该怎么修改?多谢
求助:该程序是a数组与b数组比较,如有相同四码的就把b数组的数码全部赋于a数组并输出,如没有相同四码的就输出a数组。下边的程序有两组数输出的不对:
既2 4 6 11 18 应输出是:2 4 6 11 12 却输出了:2 4 5 11 12
  1 3 6 11 18 应输出是:1 3 6 9 18 和 1 3 6 11 12 却只输出了:1 3 6 9 18
请拜托解答。多谢啦!!!

程序代码:
#include<stdio.h>
void main() 
{           
int i,j,s,AA,OKKO;
int a[14][5]={
                {3,5,6,11,18},
                {2,5,6,11,18},
                {1,5,6,11,18},
                {2,4,6,11,18},
                {1,3,6,11,18},
                {4,6,8,10,18},
                {2,4,7,10,18},
                {3,4,5,10,18},
        {2,4,5,10,18},
                {1,4,5,10,18},
                {2,3,5,10,18},
                {1,2,5,10,18},
                {3,5,7,9,18},
                {1,3,6,9,18},
};

 int b[14][5]={
                {1,3,6,9,18},
                {6,7,9,11,12},
                {4,7,9,11,12},
                {2,7,9,11,12},
                {1,7,9,11,12},
                {3,7,8,11,12},
        {2,5,8,11,12},
                {1,5,8,11,12},
                {2,4,6,11,12},
                {1,3,6,11,12},
                {2,4,5,11,12},
                {3,6,8,10,12},
        {3,6,8,10,11},
                {3,6,8,9,13},
                };
   for(i=0;i<14;i++)                    
    {
        for(s=0;s<14;s++)
        {
              AA=0;
            for(j=0;j<5;j++)
            {                        
            if(b[s][j]==a[i][j])//a数组和b数组对比
                AA++;           //有相同的就记数
                if(AA>=4)
                {
                   for(j=0;j<5;j++)
                    a[i][j]=b[s][j];//数组中有等于大于四个数码的将b数组的码全部赋予a数组  
                }    
            }
        }
          
      {
          for(j=0;j<5;j++)
              printf("%4d",a[i][j]);
            printf("\n");
            OKKO++;
        }
        }
   }
搜索更多相关主题的帖子: include 
2009-07-25 22:42
醉心无恨
Rank: 2
等 级:论坛游民
帖 子:19
专家分:22
注 册:2009-4-27
收藏
得分:0 
看看我的对不对!
我说你的程序中没有限制一次比较完后就不向下比较了!所以当 2 4 6 11 18 第一次和b数组中的所有数码比较以后会先变成 2 4 6 11 12 。然后在向下和b数组中的以后的数码再继续比较!当遇到 2 4 5 11 12 时, 2 4 6 11 12  中又有四个数和 2 4 5 11 12 中的相同!所以就又变成2 4 5 11 12 了!后面的和也是这个道理!
2009-07-25 23:56
金多虾
Rank: 2
等 级:论坛游民
帖 子:153
专家分:99
注 册:2009-6-9
收藏
得分:0 
不是很懂!
2009-07-26 00:22
金多虾
Rank: 2
等 级:论坛游民
帖 子:153
专家分:99
注 册:2009-6-9
收藏
得分:0 
2009-07-26 00:22
醉心无恨
Rank: 2
等 级:论坛游民
帖 子:19
专家分:22
注 册:2009-4-27
收藏
得分:20 
那再运行一下这个看看两者的差异就懂了!
#include<stdio.h>
void main()
{           
int i,j,s,AA,OKKO;
int a[14][5]={
                {3,5,6,11,18},
                {2,5,6,11,18},
                {1,5,6,11,18},
                {2,4,6,11,18},
                {1,3,6,11,18},
                {4,6,8,10,18},
                {2,4,7,10,18},
                {3,4,5,10,18},
                {2,4,5,10,18},
                {1,4,5,10,18},
                {2,3,5,10,18},
                {1,2,5,10,18},
                {3,5,7,9,18},
                {1,3,6,9,18},
};
int b[14][5]={
                {1,3,6,9,18},
                {6,7,9,11,12},
                {4,7,9,11,12},
                {2,7,9,11,12},
                {1,7,9,11,12},
                {3,7,8,11,12},
                {2,5,8,11,12},
                {1,5,8,11,12},
                {2,4,6,11,12},
                {1,3,6,11,12},
                {2,4,5,11,12},
                {3,6,8,10,12},
                {3,6,8,10,11},
                {3,6,8,9,13},
                };
   for(i=0;i<14;i++)                    
    {
        for(s=0;s<14;s++)
        {
              AA=0;
            for(j=0;j<5;j++)
            {                        
            if(b[s][j]==a[i][j])//a数组和b数组对比
                AA++;           //有相同的就记数
                if(AA>=4)
                {
                   for(j=0;j<5;j++)
                    a[i][j]=b[s][j];//数组中有等于大于四个数码的将b数组的码全部赋予a数组
                   goto loop;
                }  
            }
        }
loop:
        {
          for(j=0;j<5;j++)
              printf("%4d",a[i][j]);
            printf("\n");
            OKKO++;
        }
   }
}

[[it] 本帖最后由 醉心无恨 于 2009-7-26 00:26 编辑 [/it]]
2009-07-26 00:23
醉心无恨
Rank: 2
等 级:论坛游民
帖 子:19
专家分:22
注 册:2009-4-27
收藏
得分:0 
回复 4楼 金多虾
现在咋样啊?差不多啦吧!
2009-07-26 00:27
wangtao88
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2008-11-3
收藏
得分:0 
非常感谢楼上的解答!!但还有一个问题请指点?
你把我第一个问题给解决啦。但第二个问题该如何修改程序?多谢!!!
第二个问题:1 3 6 11 18 应输出是:1 3 6 9 18 和 1 3 6 11 12 却只输出了:1 3 6 9 18
(意思是:当a数组在对比b数组过程中,a数组不要发现有相同四码的就退出,要继续向下对比b数组的其他数组并再一次次的替换至到对比完b数组。多谢!!!)
2009-07-26 15:12
快速回复:程序错在哪里该怎么修改?多谢
数据加载中...
 
   



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

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