Ir ao conteúdo

C Como mostrar o índice de um vetor (matriz) em C


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Olá, tenho uma dúvida. Consigo montar e mostrar o maior e menor número de uma matriz, mas não consegui indicar o índice. Alguém pode me ajudar com o código, preciso saber como mostrar o índice dos maiores e menores valores inseridos pelo usuário. Desde já, muito obrigado.

#include<stdio.h>
int main()
{
    int m[2][2],i,j,menor,maior,imenor,jmenor;
    printf("Entre com os 4 valores da matriz 2x2 \n");
    for(i=0;i<2;i++){
        for(j=0;j<2;j++){
           scanf("%d",&m[i][j]);
           if (i == 0 && j == 0){
               menor=m[0][0];
               maior=m[0][0];
           }
           if(m[i][j]<menor){
            menor=m[i][j];
            imenor = i;
            jmenor=j;
           }
           if(m[i][j]>maior){
            maior=m[i][j];
           
           }
         
            
      
        }


        
}

    printf("O menor numero e: [%d]\n",menor);
    printf("O maior numero e: [%d]\n",maior);

 

  • Obrigado 1
Postado

@Vitor1233 Crie mais 4 variáveis do tipo int por exemplo menorLinha, menorColuna, maiorLinha e maiorColuna ou se preferir, menorInd1, menorInd2, maiorInd1 e maiorInd2 e cada vez que encontrar um número menor ou o maior armazene também o índice onde o valor foi encontrado.

  • Curtir 1
  • Obrigado 1
Postado

Então, mas não sei direito onde colocar isso para armazenar para saber o valor do índice. Aqui fica sempre como índice zero quando coloco no código. Poderia me ajudar?

  • Curtir 1
Postado
22 minutos atrás, Vitor1233 disse:

Então, mas não sei direito onde colocar isso para armazenar para saber o valor do índice. Aqui fica sempre como índice zero quando coloco no código. Poderia me ajudar?

Agora que vi, seu código já estava armazenando a posição do menor.

imenor = i;
jmenor=j;

É só repetir o mesmo para o maior e depois exibir, mas você deveria saber fazer isso, já que está armazenando os índices do menor corretamente.

  • Curtir 2
  • Solução
Postado

@Vitor1233     você já criou as variáveis ,   então na hora de escrever o maior e menor use essas variáveis  no printf e para inicializar a variável  menor você pode usar o INT_MAX , da biblioteca limits.h ,  e o maior com o INT_MIN ,  e seu código poderia ser assim  :

#define _CRT_SECURE_NO_WARNINGS    // para usar scanf e outras funcoes no visual studio
#include <stdio.h>
#include <limits.h>
int main()
{
    int m[2][2] = {0}   , i= 0,j = 0,
        menor  = INT_MAX, maior  = INT_MIN, 
        imenor = 0      , jmenor = 0,
        imaior = 0      , jmaior = 0;
    printf("Entre com os 4 valores da matriz 2x2 \n");
    for (i = 0; i < 2; i++) 
    {
        for (j = 0; j < 2; j++) 
        {
            scanf("%d", &m[i][j]);
            if (m[i][j] < menor) 
            {
                menor  = m[i][j];  // define o menor
                imenor = i;        // marca a Linha  com a posicao desse menor
                jmenor = j;        // marca a Coluna com a posicao desse menor
            }
            if (m[i][j] > maior) 
            {
                maior  = m[i][j];  // define o maior
                imaior = i;        // marca a Linha  com a posicao desse maior
                jmaior = j;        // marca a Coluna com a posicao desse maior
            }
        }
    }
    printf("Na Linha %d e Coluna %d esta O menor numero e: [%3d]\n", imenor, jmenor, menor);
    printf("Na Linha %d e Coluna %d esta O maior numero e: [%3d]\n", imaior, jmaior, maior);
    return 0;
}

 

  • 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

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!