首页 > 用户发贴区 > 编程问题提问区 > 程序未能正确输出问题在哪?请赐教
2010
08-25

程序未能正确输出问题在哪?请赐教

该程序是想在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”);
  }
 }
}


程序未能正确输出问题在哪?请赐教》有 1 条评论

  1. wangtao88 说:

    我已调试成功啦,请看以下程序

    #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,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[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
    [4]>0)
           { 
        for(j=0;j<5;j++)
        printf(“%4d”,a
    [j]);
       printf(“\n”);
      }
     }
    }

留下一个回复