TransWikia.com

Compartir variables entre funciones

Stack Overflow en español Asked by Ponce Francoo on February 6, 2021

¿Alguien sabe cómo hago para mostrar pos1 y pos2 pero en la otra función? ¿Qué parámetros tendría que usar? a todo esto, tiene que ser void si o si la función.

void encontrarMinimoMatriz(float m[][MESES], int cant,int pos1, int pos2){
    int minimo = m[0][0];
    for (int i=0;i<cant;i++){
        for (int j=0;j<MESES;j++){
            if(m[i][j] < minimo){
                minimo = m[i][j];
                pos1 = i;
                pos2 = j;
            }
        }
    }
}

void mostrarMinimo(float m[][MESES], int cant,int pos1, int pos2){
    printf("n-------------------------------n");
    printf("el minimo esta en: n %d %d",pos1,pos2);
}

One Answer

Usa punteros:

void encontrarMinimoMatriz(float m[][MESES], int cant,int *pos1, int *pos2){
    int minimo = m[0][0];
    for (int i=0;i<cant;i++){
        for (int j=0;j<MESES;j++){
            if(m[i][j] < minimo){
                minimo = m[i][j];
                *pos1 = i;
                *pos2 = j;
            }
        }
    }
}

Con punteros podrás extraer el valor de dentro de la función al punto de llamada de la función, luego se lo puedes pasar a cualquier otra función:

int main(void)
{
    float matriz[10][MESES] = { /* Datos */ };
    int pos1 = 0, pos2 = 0;

    encontrarMinimoMatriz(matriz, 10, &pos1, &pos2);
    mostrarMinimo(matriz, 10, pos1, pos2);

    return 0;
}

Answered by PaperBirdMaster on February 6, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP