2013-02-20 5 views
0
const int v1=16; 
const int v2=16; 
const int u1=4; 
const int u2=4; 

void display(int a[u1][u2],int u1,int u2); 
void calculate(int a[v1][v2],int v1,int v2,int,int,int,int); 
int main() 
{ 
    int a[16][16]; 
    clrscr(); 
    for(int i=0;i<16;i++) 
    for(int j=0;j<16;j++) 
    { 
     cout<<"enter element at position"<<i<<j<<":"; 
     cin>>a[i][j]; 
    } 
    cout<<"\n"; 
    calculate(a,16,16,0,3,0,3); 
    calculate(a,16,16,0,3,4,7); 
    calculate(a,16,16,0,3,8,11); 
    calculate(a,16,16,0,3,12,15); 
    calculate(a,16,16,4,7,0,3); 
    calculate(a,16,16,4,7,4,7); 
    calculate(a,16,16,4,7,8,11); 
    calculate(a,16,16,4,7,12,15); 
    calculate(a,16,16,8,11,0,3); 
    calculate(a,16,16,8,11,4,7); 
    calculate(a,16,16,8,11,8,11); 
    calculate(a,16,16,8,11,12,15); 
    calculate(a,16,16,12,15,0,3); 
    calculate(a,16,16,12,15,4,7); 
    calculate(a,16,16,12,15,8,11); 
    calculate(a,16,16,12,15,12,15); 
    getch(); 
    return 0; 
} 

void calculate(int **a,int n,int m,int il,int iu,int jl,int ju) 
{ 
    int q[4][4],i0=0,j0=0; 
    for(int i=0;i<n;i++) 
    { 
     for(int j=0;j<m;j++) 
     { 
      if(i>=il && i<=iu && j<=ju && j>=jl) 
      { 
       q[i0][j0]=a[i][j]; 
       if(j==ju) 
       { 
        i0++; 
        j0=0; 
       } 
       else 
       { 
        j0++; 
       } 
      } 
     } 
    } 
    display(q,u1,u2); 
} 

Le remaning du code est donnée ci-dessous dans les commentaires (la fonction d'affichage) chaque fois que je lance ce dans turbo C++ il ditLier erreur en passant un tableau multidimensionnel

Linking error: undefined symbol display(int a[4]near*,int,int) Linking error: undefined symbol calculate(int a[16]near*,int,int,int,int,int,int)

S'il vous plaît aider par me faire savoir pourquoi et quelle est la solution?

+0

affichage void (int ** a, int n, int m) {for (int i = 0; i

+1

Deux choses. 1) Ne postez pas de code dans les commentaires, c'est illisible. Au lieu de cela, éditez votre question avec les nouvelles informations. 2) Où exactement 'display' est-il défini? – StoryTeller

+0

Notez également que votre prototype de 'calculate()' ne correspond pas à l'implémentation. (et pas non plus 'display()', par les apparences) – JasonD

Répondre

1

Cela va compiler.

const int v1=16; 
const int v2=16; 
const int u1=4; 
const int u2=4; 

void display(int a[u1][u2],int u1,int u2); 
void calculate(int a[v1][v2],int v1,int v2,int,int,int,int); 
int main() 
{ 
    int a[16][16]; 
    clrscr(); 
    for(int i=0;i<16;i++) 
    for(int j=0;j<16;j++) 
    { 
     cout<<"enter element at position"<<i<<j<<":"; 
     cin>>a[i][j]; 
    } 
    cout<<"\n"; 
    calculate(a,16,16,0,3,0,3); 
    calculate(a,16,16,0,3,4,7); 
    calculate(a,16,16,0,3,8,11); 
    calculate(a,16,16,0,3,12,15); 
    calculate(a,16,16,4,7,0,3); 
    calculate(a,16,16,4,7,4,7); 
    calculate(a,16,16,4,7,8,11); 
    calculate(a,16,16,4,7,12,15); 
    calculate(a,16,16,8,11,0,3); 
    calculate(a,16,16,8,11,4,7); 
    calculate(a,16,16,8,11,8,11); 
    calculate(a,16,16,8,11,12,15); 
    calculate(a,16,16,12,15,0,3); 
    calculate(a,16,16,12,15,4,7); 
    calculate(a,16,16,12,15,8,11); 
    calculate(a,16,16,12,15,12,15); 
    getch(); 
    return 0; 
} 

void calculate(int a[v1][v2],int n,int m,int il,int iu,int jl,int ju) 
{ 
    int q[4][4],i0=0,j0=0; 
    for(int i=0;i<n;i++) 
    { 
     for(int j=0;j<m;j++) 
     { 
      if(i>=il && i<=iu && j<=ju && j>=jl) 
      { 
       q[i0][j0]=a[i][j]; 
       if(j==ju) 
       { 
        i0++; 
        j0=0; 
       } 
       else 
       { 
        j0++; 
       } 
      } 
     } 
    } 
    display(q,u1,u2); 
} 

void display(int a[u1][u2],int n,int m) 
{ 
    for(int i=0;i<n;i++) 
    { 
      for(int j=0;j<m;j++) 
       cout<<a[i][j]<<setw(6); 
      cout<<"\n"; 
    } 
} 

Bonne chance.

Questions connexes