PROBLEMA ENTRE ARRAY MULTIDIMENSIONAL Y FUNCIONES

Iniciado por BJM, 28 Septiembre 2012, 22:10 PM

0 Miembros y 1 Visitante están viendo este tema.

BJM

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);
       }

DickGumshoe

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.


main(){
       
 
        llenar(array); //No puedes usar array porque no lo has declarado
        imprimir(array);
        suma(array,array2);
        system("pause");
        }


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):

main(){
       
        int array[6][6], array2[8][39];
        llenar(array);
        imprimir(array);
        suma(array,array2);
        system("pause");
        }


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.

leosansan

#2
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;

main(){
     
       int array[3][6], array2[3][6];
       llenar(array);
       imprimir(array);
       suma(array,array2,n,h);
void suma(int array[][], int array2[][],int n,int h)<===aquí faltan las dimensiones      
       }


Un saludo.