首页 > 用户发贴区 > 编程问题提问区 > 如何在应输出数组a[i][j]第六的位置上加入一个数?
2009
05-07

如何在应输出数组a[i][j]第六的位置上加入一个数?










以下程序是对比找出两个文件中二维数组有相同四码的数。如是四码相同的数组就输出并同时输出该数组的sum得数(该sum数要加入在输出数组的第六位上)。以下是我写的程序和两个文件中的数组。多谢指教啦!



FILE01                         FILE02
5 6 11 12 21                 5 10 11 12 21
5 8 14 15 22                 1 10 11 12 21
3 5  8  9 21                   8  9 12 14 22
                                   1  5 11 12 21 
                                    5  6 11 12 22
        
#include<stdio.h>
int b[500][5];
int OK;
void xdu1(int a[][5],int OK); 
int KO;
void xdu2(int b[][5],int KO);   
int OKKO;    
void shan3(int a[][5],int OK);         
int OKKO1;
void main()

{
int a[500][5]; 
OK=3;
xdu1(a,OK); 
KO=5;
    xdu2(b,KO);       
    shan3(a,OK);   
    printf(“OKKO1=%d”,OKKO1);
printf(“\n”);
   
}

void xdu1(int a[][5],int OK)                            
{
int i,j;
FILE *pf;
if((pf=fopen(“e:\\FILE01.txt”,”r”))==NULL)  
        {
printf(“Cannot open file!028v”);
return;
}
for(i=0;i<OK;i++)
for(j=0;j<5;j++)
{
fscanf(pf,”%4d”,&a[i][j]);     
fscanf(pf,”\n”);
}
fclose(pf);
}

void xdu2(int b[][5],int KO)                              
{
int i,j;
FILE *pf1;
if((pf1=fopen(“e:\\FILE02.txt”,”r”))==NULL)    
{
printf(“Cannot open file!029v”);
return;
}
for(i=0;i<KO;i++)
for(j=0;j<5;j++)
{
fscanf(pf1,”%4d”,&b[i][j]);   
fscanf(pf1,”\n”);
}
fclose(pf1);
}


void shan3(int a[][5],int OK)         
{        
int counter1,sum;
    int i,j,s,AA;
for(i=0;i<OK;i++)                 
{
counter1=0;
for(s=0;s<KO;s++)
{
        AA=0;sum=0;
     for(j=0;j<5;j++)
    if(b[s][j]==a[i][j])//对比相同数
{
AA++;
sum=AA+j+sum;//累加计数
if(AA==4)
counter1=AA;
}
}
      if(counter1>=4)    
      {
   a[i][5]=sum; //该数就是加入的第六位置上的数。问题是他加入的不是应输出数组的后边。(应输出的是:5 6 11 12 21)
for(j=0;j<6;j++)
           printf(“%4d”,a[i][j]);
printf(“\n”);
OKKO1++;
}
}
}


留下一个回复