Ir ao conteúdo
  • Cadastre-se

C retorna menores termos da matiz


lucasngc_

Posts recomendados

galera estou começando agr em c, e estou bem perdido, quero retorna os menores termos da matriz de uma matri 4x4.

exemplo; 

1 3 4 8         
7 5 2 9
3 9 8 2
4 2 6 8           resposta 1 3 4 2.

acontece é que eu estou imprimindo mais que isso.


#include<stdio.h>
const int linhas=4;
const int colunas=4;

int imprimir(int mat[linhas][colunas]){
    int linhas=4;
    int menores=mat[2][2];
    int i,j;
    for(i=0;i<linhas;i++){
     for(j=0;j<colunas;j++){
     
        if (mat[i][j]<menores && mat[i][j] <= linhas)
    
        printf("%d ",mat[i][j]);
    }
        }
    }

int main(){
    int mat[linhas][colunas];
    int i,j;
    for(i=0;i<linhas;i++){
        for(j=0;j<colunas;j++){
        printf("informe o numero inteiro ");
        scanf("%d",&mat[i][j]);
        }
    }

    imprimir(mat);
}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@lucasngc_@lucasngc_    por que você pegou o número do meio da matriz e compara com os outros  ?  , você imagina que esse é o menor da matriz ? , e esse exemplo que você postou , está confuso , 

2096563558_matriztermos.jpg.6e2200157b52f6fd4b6ef249becdad08.jpg

 

e hum modo mais fácil seria usando um método de ordenação de vetores, como o bubblesort ,  aí os menores podem ser os primeiros da matriz e então escrever  esses primeiros , e seu código com muitas modificações poderia ser assim  :

#include<stdio.h>
#include<conio.h>
#include <iomanip>
#include <vector>
int imprimir(int mat[][4], int linhas, int colunas);
int main()
{
    const int linhas=4;
    const int colunas=4;
    int mat[linhas][colunas]={ 1,8,9,7,  //  inicializando a matriz com esses valores nela
                               1,6,8,4,  //  para não precisar digitar os números manualmente
                               6,1,5,8,  //  mas se Quiser pode inserir manualmente também
                               9,2,9,4   //  que vai funcionar bem do mesmo jeito
                              };
    int i,j;
    imprimir(mat,linhas,colunas);
    printf("\n\n\n");
    return 8192;
}
int imprimir(int mat[][4], int linhas, int colunas)
{
    int i,j,q=0,
        aux,                             //  auxiliar na ordenação
        vet[16];                         //  vetor q recebe os númoeros da matriz
    for(i=0; i<4; i++)                   //  as Linhas da Matriz
    {
        for(j=0; j<4; j++)               //  as colunas da Matriz
        {
            vet[q] = mat[i][j];          //  transfere da matriz para o vetor
            q++;                         //  incrementa a posição no vetor
        }
    }
    for(i=0; i<15; i++)                  //  para fazer a ordenação mai fácilmente
        for(j=i+1; j<16; j++)
            if(vet[i] > vet[j])          //  se número maior que opróximo
            {
                aux    = vet[i];         //  faz a troca
                vet[i] = vet[j];         //  do maio com o menor
                vet[j] = aux;
            }
    q=0;                                 //  que volta a valer zero
    for(i=0; i<4; i++)                   //  percorrer as linhas da matriz
        for(j=0; j<4; j++)               //  percorrer as cilounas damatriz
        {
            mat[i][j] = vet[q];          //  a matriz rece os número ordenados que esão no vetor
            q++;                         //  incremeta a posiç]ão do vetor
        }
    printf("Os Numeros Arazenados na Matriz\n\n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
            printf("%d ",mat[i][j]);
        printf("\n");
    }
    printf("\nOs Quatros Menores Termos Da Matriz Sao -> ");
    for(j=0; j<4; j++)printf("%d ",mat[0][j]);
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...