| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 603 人关注过本帖
标题:求教帮助!怎么一天也没回复的呀
只看楼主 加入收藏
wangtao88
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2008-11-3
结帖率:70%
收藏
 问题点数:0 回复次数:7 
求教帮助!怎么一天也没回复的呀
程序代码:
该程序是想在12个二维数组中,第一个数组开始自上而下的对比查找出有4个相同码并且相同码是在数组同一个位置上的,就将该数组赋予零并不做输出。虽然相同码也是4个但相同码是不在数组同一个位置的则照常输出。但该程序不能正确输出请赐教问题出在哪?多谢啦(2 6 14 15 22应该正常做输出才对)

下面是该程序和12个数组。
2 13 14 15 22
6 12 13 14 21
2 13 14 15 18
6 8 9 19 20
4 10 15 17 22
2 7 11 13 17
2 6 14 15 22
11 12 16 18 20
4 9 11 15 21
2 13 14 15 19
1 9 15 16 19
2 13 14 15 21


#include<stdio.h>      
#include<math.h>
int jbb2;                
void abc4(int a[][5],int jbb2);      
void abc5(int a[][5],int jbb2);    
void main()    
{    

 int a[2000][5];                 

 jbb2=12;   
     abc4(a,jbb2);
     abc5(a,jbb2);
}    
void abc4(int a[][5],int jbb2)                                                  
{

 int i,j;

 FILE *pf;

 if((pf=fopen("d:\\001A数组.txt","r"))==NULL)         

 {
  printf("Cannot open file!");
  return;

 }

 for(i=0;i<jbb2;i++)
  for(j=0;j<5;j++)
  {
   fscanf(pf,"%4d",&a[j]);    
   fscanf(pf,"\n");
  }
  fclose(pf);
}
void abc5(int a[][5],int jbb2)        
{       

 int i,j,s,counter,counter1;
  for(i=0;i<jbb2;i++)                

 {
     counter1=0;
    for(s=i+1;s<jbb2;s++)
  {
         counter=0;
   for(j=0;j<5;j++)
   {
      if(a[s][j]==a[j])
    counter++;
   if(counter==4) 
   {
                a[s][j]!=a[j];
    counter1=j;
   }
   if(counter==4 && counter1==j)
     a[s][j]=0;
            }
  }
  if(a[4]>0)
       {
    for(j=0;j<5;j++)
    printf("%4d",a[j]);
   printf("\n");
  }

 }
}
2010-08-26 18:29
老村长玩电动
Rank: 2
等 级:论坛游民
帖 子:10
专家分:39
注 册:2010-8-20
收藏
得分:0 
学习了!!
2010-08-26 18:55
wangtao88
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2008-11-3
收藏
得分:0 
我已经找到解决办法啦,请看看对不对。
程序代码:
#include<stdio.h>                           
#include<math.h>
int jbb2;                                                          
void abc4(int a[][5],int jbb2);                           
void abc5(int a[][5],int jbb2);                   
void main()                   
{                   
    int a[2000][5];                             
    jbb2=12;         
     abc4(a,jbb2);
     abc5(a,jbb2);
}                    

void abc4(int a[][5],int jbb2)                                                  
{
    int i,j;
    FILE *pf;
    if((pf=fopen("d:\\001A数组.txt","r"))==NULL)         
    {
        printf("Cannot open file!");
        return;
    }
    for(i=0;i<jbb2;i++)
        for(j=0;j<5;j++)
        {
            fscanf(pf,"%4d",&a[i][j]);    
            fscanf(pf,"\n");
        }
        fclose(pf);
}

void abc5(int a[][5],int jbb2)        
{          
    int i,j,s,counter,counter2,sum,sum1;
  for(i=0;i<jbb2;i++)                      
    {
    sum=0;
       for(s=i+1;s<jbb2;s++)
        {
        counter=0;counter2=0;sum1=0;   
            for(j=0;j<5;j++)
            {
            if(a[s][j]==a[i][j])   
            {
                counter++;
                counter2=counter2+j;     
            }
            if(counter==4)
            {
                sum1=counter2;
                if(sum==0)
                sum=counter2;
            }
                if(counter==4 && sum==sum1)
                    a[s][j]=0;
            }
        }
        if(a[i][4]>0)
             {   
             for(j=0;j<5;j++)
                printf("%4d",a[i][j]);
            printf("\n");
        }
    }
}
2010-08-26 20:15
CImage
Rank: 1
等 级:新手上路
帖 子:18
专家分:6
注 册:2010-8-24
收藏
得分:0 
没看明白:“第一个数组开始自上而下的对比查找出有4个相同码并且相同码是在数组同一个位置上的,就将该数组赋予零并不做输出。”该数组是哪个数组?为什么是二维数组????不懂
2010-08-26 20:31
manliuhui
Rank: 2
来 自:山东德州
等 级:论坛游民
帖 子:23
专家分:52
注 册:2009-7-25
收藏
得分:0 
楼主想说的意思是说要找出5个数中有四个数位置和数值都相同的两个数组,那是要全部赋予0值不输出呢?还是只输出任意个?还有就是楼主改正的代码中还是有缺陷,当数组赋予0值的时候,之后的数组就无法和这个数组的原始数据作比较,这样相当于增添了很多错误的输出。
2010-08-27 17:35
manliuhui
Rank: 2
来 自:山东德州
等 级:论坛游民
帖 子:23
专家分:52
注 册:2009-7-25
收藏
得分:0 
可以复制一个二维数组进行比较,或是运用指针
2010-08-27 17:37
wangtao88
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2008-11-3
收藏
得分:0 
5楼此话差异,输出时正确的,你可以运行验证的。
2010-08-27 18:11
manliuhui
Rank: 2
来 自:山东德州
等 级:论坛游民
帖 子:23
专家分:52
注 册:2009-7-25
收藏
得分:0 
现在来说输出是正常的,但是要试验一个程序段,需要更多的数据。
楼主请将4 13 14 15 18或是2 13 14 16 18这样的五元数组插入第三行之后,看看是否按照你所说的规则输出?

2010-08-28 13:38
快速回复:求教帮助!怎么一天也没回复的呀
数据加载中...
 
   



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

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