Pasar/Recibir arreglo bidimensional en diversas funciones (Lenguaje C)

Iniciado por LoQueSeaPI, 15 Septiembre 2016, 23:53 PM

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

LoQueSeaPI

Hola a todos, estoy tratando de hacer la parte de un programa en el que lleno lo que es una nómina usando un arreglo bidimensional y luego éste arreglo lo quiero enviar a otra función en la que lo imprimiré; a parte de eso también quiero llamar a la función en la que se imprime el arreglo dentro de un menú, sin embargo me ha surgido un error tras otro. Se que todo se podría hacer dentro de una sola función, pero esto es una síntesis del programa (el programa en sí es muy largo y necesito de las funciones), creo que se podría hacer con punteros pero no tengo ni idea de como sería.


#include <stdio.h>
#include <stdlib.h>

#define filas 6
#define columnas 4

int llenarNomina(int N[filas][columnas]);
int mostrarNomina(int N[filas][columnas]);

void menu();

void main (){
   menu();
}

void menu(){
   int opc;
   printf("MENU\n");
   printf("1. Nueva Nomina\n");
   printf("2. Mostrar Todas las Nominas\n");
   printf("Ingrese opcion: ");
   scanf("%d",opc);
   
   switch(opc){
      case 1:
         /*Estoy tratando de hacer que cuando ingrese a la opcion 1, vaya directamente a la función llenarNomina*/
         llenarNomina(int N[filas][columnas]); // Aca me da un severo error
         break;
      case 2:
         mostrarNomina(int N[filas][columnas]);
         break
      default:
         printf("Opcion Incorrecta");
}

int llenarNomina(int N[filas][columnas]){
   //ACA SE RELLENA EL ARREGLO
   return N[filas][columnas];
}

int mostrarNomina(int N[filas][columnas]){
   //ACA SE IMPRIME EL ARREGLO
   return N[filas][columnas];
}

AlbertoBSD

Hola tienes que declarar primero el arreglo antes de llamar a las funciones mencionadas

Ejemplo:

void menu(){
int N[filas][columnas];
   int opc;
   printf("MENU\n");
   printf("1. Nueva Nomina\n");
   printf("2. Mostrar Todas las Nominas\n");
   printf("Ingrese opcion: ");
   scanf("%d",opc);

   switch(opc){
      case 1:
         /*Estoy tratando de hacer que cuando ingrese a la opcion 1, vaya directamente a la función llenarNomina*/
         llenarNomina(N); // Aca me da un severo error
         break;
      case 2:
         mostrarNomina(N);
         break
      default:
         printf("Opcion Incorrecta");
}
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

LoQueSeaPI

Hola! He hecho lo que me has dicho y ha compilado, sin embargo cuando ingreso al menu de opciones y por ejemplo ingreso a la opcion 1, simplemente el programa finaliza de ejecutarse.  :-(

AlbertoBSD

Donde termina tu funcion menu?

falta un } para el switch o para la funcion, ademas ya estando en tu funcion llenarNomina no se que realice.. tal vez tratas de escribir fuera de los limites de la memoria o algun otro tipo de error.

saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW