Ir ao conteúdo
  • Cadastre-se

C++ Encontrar menor numero de uma matriz


JoaoE
Ir à solução Resolvido por devair1010,

Posts recomendados

Fala pessoal ! Essa é a minha primeira vez postando, eu estou com dificuldade em encontrar o menor numero em uma matriz  2x2, o programa só me retorna 0 como o menor numero

#include <iostream>
#include <stdlib.h>
#include <locale.h>

using namespace std;

int main(){

    setlocale (LC_ALL,"portuguese");

    //matriz
    int matriz[2][2],i,j;
    //comparador
    int menor,E;

    //lendo valores da matriz
    for(i = 0;i < 2; i++){
    for(j = 0;j < 2; j++){
        cout << "Digite os valores da matriz: ";
        cin >> matriz[i][j];
    }
    }

    cout << "\n";
    //imprimir os valores da matriz
    for(i = 0;i < 2; i++){
    for(j = 0;j < 2; j++){
        cout << matriz[i][j] << " ";
        //menor irá armazenar o menor numero
        if(matriz[i][j] < menor){
            menor = matriz[i][j];
        }
        
    }
    cout << "\n";
    }
    //imprimindo o menor numero
    cout << "\nO menor numero é " << menor;
    cout << "\n\n";
    return 0;
}

 

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

  • Solução

@JoaoE     para saber se um valor é menor que outro , você precisa informar esses valores ao compilador , através das variáveis , e ali você não fez isso , pois você pediu uma comparação do conteúdo na posição 0 x 0  da matriz com o valor da variável menor , e isso está certo , mas como você não estipulou nenhum valor para essa variável menor , você não sabe qual o valor que ela tem nesse momento , pois o compilador criou a variável com o nome que você escreveu ali , e para isso ele reservou quatro posições da memória do pc , para guardar os valores referentes a ela ,  mas ali já havia alguns dados armazenados , e pode ser qualquer valor , e esse valor não sabido é considerado Lixo de memória ,  assim na hora que ele compara com o primeiro na matriz e assim causa erro ,  então antes precisa inicializar a variável menor com o primeiro na matriz e depois começar as comparações , e seu código poderia ser assim  :

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <iomanip>
#include <vector>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
#define kbhit() _kbhit();
using namespace std;
int main()
{
    setlocale(LC_ALL, "portuguese");
    //matriz
    int matriz[2][2], i, j;
    //comparador
    int menor, E=1;
    //lendo valores da matriz
    for (i = 0; i < 2; i++)
        for (j = 0; j < 2; j++)
        {
            cout << "Digite o valor "<<E<<" da matriz: ";
            cin >> matriz[i][j];
            E++;
        }
    menor = matriz[0][0];// inicializar a variável menor , com o valor da primeira posição da matriz
    //imprimir os valores da matriz
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 2; j++)
        {
            cout <<setw(3)<< matriz[i][j] << " ";
            //menor irá armazenar o menor numero
            if (matriz[i][j] < menor)
            {
                menor = matriz[i][j];
            }
        }
        cout << endl;
    }
    //imprimindo o menor numero
    cout << "\nO menor numero eh " << menor<<endl;
    cout << endl<<endl<<"      ";
    return 128;
}

 

  • Curtir 1
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...