Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: BJM en 28 Septiembre 2012, 22:10 pm



Título: PROBLEMA ENTRE ARRAY MULTIDIMENSIONAL Y FUNCIONES
Publicado por: BJM en 28 Septiembre 2012, 22:10 pm
Deseo transferir array[3][6] a cada una de las funciones descritas en el programa, pero en la primera funcion llamada llenar el compilador me indica `array' undeclared (first use this function), hay error o falta algo?, soy novata.

#include<stdio.h>
#include<iostream>
using namespace std;

void llenar(int array[3][6]);
 void imprimir(int array[3][6]);
 void suma(int array[3][6],int array2[3][3],int n,int h);
 int i,j;
main(){
       
 
        llenar(array);
        imprimir(array);
        suma(array,array2);
        system("pause");
        }
 
       
       void llenar(int array[][6]){
       for(i=1;i<=3;i++){
        for(j=1;j<=6;j++){
         printf("\n valor posicion [%d][%d]=",i,j);
         scanf("%d",&array[j]);
         }
          }
           }
         
         void imprimir(int array[][6]){
         for(i=1;i<=3;i++){
        for(j=1;j<=6;j++){
         printf("\n posicion[%d][%d]=%d",i,j,array[j]);
         }
           }
             }
         
         void suma(int array[][], int array2[][],int n,int h){
       
         for(i=1;i<=3;i++){
          n=1,h=0;                 
        for(j=1;j<=3;j++){
         array2[j]=array[j+h]+array[j+n];
         n++;
         h++;
         }
           }
         imprimir(array2);
       }


Título: Re: PROBLEMA ENTRE ARRAY MULTIDIMENSIONAL Y FUNCIONES
Publicado por: DickGumshoe en 28 Septiembre 2012, 23:58 pm
Así a simple vista, he visto en la función main() que usas las variables array y array2, pero no las declaras dentro de esta, por lo que dará error.

Código
  1. main(){
  2.  
  3.  
  4.        llenar(array); //No puedes usar array porque no lo has declarado
  5.        imprimir(array);
  6.        suma(array,array2);
  7.        system("pause");
  8.        }
  9.  

Por tanto, quedaría así (los valores del índice de los arrays que voy a declarar serán orientativos, cámbialos en función de lo que desees hacer):

Código
  1. main(){
  2.  
  3.        int array[6][6], array2[8][39];
  4.        llenar(array);
  5.        imprimir(array);
  6.        suma(array,array2);
  7.        system("pause");
  8.        }

No he visto el resto del programa, pero por lo que indica el compilador, solo es eso. SI hay más errores coméntalos.  ;)

Un saludo.


Título: Re: PROBLEMA ENTRE ARRAY MULTIDIMENSIONAL Y FUNCIONES
Publicado por: leosansan en 29 Septiembre 2012, 12:47 pm
Tampoco tiene declaradas las variables n y h, ni los valores de éstos en "suma" y las matrices son ambas de 3x6. Además no tiene definidas dimensiones de los arrays en la funcion suma o sea;

Código
  1. main(){
  2.  
  3.        int array[3][6], array2[3][6];
  4.        llenar(array);
  5.        imprimir(array);
  6.        suma(array,array2,n,h);
  7. void suma(int array[][], int array2[][],int n,int h)<===aquí faltan las dimensiones      
  8.        }

Un saludo.