Ir ao conteúdo

C++ Encontrar menor numero de uma matriz


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

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
  • Solução
Postado

@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

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!