Dev - C++ - MATRICES

   
Vista:

MATRICES

Publicado por DEVC++ (4 intervenciones) el 13/02/2018 02:39:17
Hacer una función que muestre el valor mínimo de cada columna de una matriz de i
filas y j columnas, pero si hay más de una ocurrencia se debe reportar la última encontrada. Se
debe mostrar el valor mínimo y los lugares donde se encuentra ese valor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

MATRICES

Publicado por aguml (522 intervenciones) el 13/02/2018 12:25:47
Se me ocurre algo asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#define FILAS 8
#define COLUMNAS 7
 
int main(int argc, char* argv[])
{
    int array[FILAS][COLUMNAS];
    int i,j,pos,n,l,valor;
 
    srand(time(NULL));
 
    //relleno el array con valores aleatorios
    for(i=0;i<FILAS;i++){
        for(j=0;j<COLUMNAS;j++){
            array[i][j]=rand()%10;
        }
    }
 
    //Muestro el array
    for(i=0;i<FILAS;i++){
        for(j=0;j<COLUMNAS;j++){
            printf("%d\t",array[i][j]);
        }
        printf("\n");
    }
    printf("\n");
 
    //Recorro cada fila
    for(i=0;i<FILAS;i++){
        valor=array[i][0];
        n=1;
        //busco el valor menor en cada fila
        for(j=1;j<COLUMNAS;j++){
            if(array[i][j]<valor){
                n=1;
                valor=array[i][j];
            }else if(array[i][j]==valor){
                n++;
            }
        }
        printf("Valor menor de la fila[%d]: %d en posicion: ",i,valor);
        for(j=0,l=0;j<COLUMNAS && l<n;j++){
            if(array[i][j]==valor){
                printf("%d",j);
                //Esta parte es para saber donde mostrar la coma o y
                l++;
                if(l<n-1){
                    printf(", ");
                }else if(l==n-1 && n>1){
                    printf(" y ");
                }
            }
        }
        printf("\n");
    }
    printf("\n");
 
    system("PAUSE");
    return 0;
}
//---------------------------------------------------------------------------
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad