Ir ao conteúdo
  • Cadastre-se

Ajuda com matriz e vetor em C e C++


Pedro3

Posts recomendados

Boa noite gente. Tenho alguns exercícios em C ou C++ para entregar na faculdade e estou com algumas dúvidas. Alguém por favor me ajude :D. Desses 4 execícios eu consegui fazer apenas o número 1 por completo. Toda ajuda é bem vinda. Obrigado.

1. Ordene um vetor A em ordem decrescente, adotando o seguinte procedimento.
-Coloque na 1ª posição do vetor o maior elemento do mesmo.
-Coloque na 2ª posição do vetor o segundo maior elemento do mesmo
-Coloque na 3ª posição do vetor o terceiro maior elemento do mesmo e assim por diante.

OBS: Consegui fazer tranquilo.

#include <stdlib.h>#include<stdio.h>main (){int x[10];int i, j, temp;/* Leitura do Vetor */for (i = 0; i<10; i++){printf("Digite um numero:");scanf("%d",&x[i]);}//ordenando o vetorfor (i=0;i<10; i++)for(j=i+1;j<10;j++){if (x[j]>x[i]){temp=x[i];x[i]=x[j];x[j]=temp;}}/* Impressão do Vetor Ordenado */printf("Vetor em ordem decrescente: \n");for(i=0;i<10;i++)printf(" %d",x[i]);return 0;return 0;}

2. Elaborar um algoritmo que leia uma matriz A de dimensão 5x7 de inteiros e verifique qual é o seu maior elemento e o imprima juntamente com sua posição na matriz (linha e coluna).

OBS: Estou com problemas com esse código aqui na hora de imprimir o maior elemento e a sua posição na matriz.

#include <iostream>using namespace std;int main (){    int i, j, Mat[5][7],maior;    for(i=0;i<=5;i++)    {        for(j=0;j<=7;j++)        {            cout<<i<< ";" <<j<< ": ";            cin>>Mat[i][j];        }    }    maior=Mat[5][7];    for(i=0;i<=5;i++)    {        for(j=0;j<=7;j++)            if(Mat[i][j]>maior)                maior=Mat[i][j];    }    cout<<"O maior valor é:\n"<< maior;    return 0;}

3. Modificar o exercício anterior para imprimir as posições de todas as ocorrências do maior elemento de A.

OBS: Como não consegui fazer o anterior não vou conseguir fazer esse aqui também. Dicas por favor.

4. Dados dois vetores A e B em ordem crescente, escreva um algoritmo para construir um vetor em C resultante da intercalação destes 2 vetores de modo que C já seja gerado em ordem crescente. Considere que a dimensão máxima desses vetores é 20. Entretanto, os vetores podem ter dimensões distintas( ex: A ter 6 elementos e B ter 3). Não é permitido colocar um vetor após o outro em C e fazer a ordenação em seguida.

OBS: Posso aproveitar parte do código da questão número 1 e criar outro vetor B. Agora não sei como faço essa intercalação entre A e B pra gerar o vetor C. Dicas por favor.
Link para o comentário
Compartilhar em outros sites

Vou te ajudar com a ideia do número 2.

Você declara uma variável inteiro que receba o conteúdo do 1º elemento da matriz (ex: maior = vetor[0][0]) e então dentro de dois laços (i e j) compara com cada elemento da matriz.

Se este elemento for maior que a variável maior, este elemento será o maior, a coluna será j e a linha será i (aquele laço dos dois for).

Assim:

    maior = vetor[0][0];    for(i = 0; i < 2; i++){        for (j = 0; j < 2; j++){            if (vetor[i][j] > maior)            {                maior = vetor[i][j];                coluna = j + 1;                linha = i + 1;            }        }    }

Me baseei num vetor 2x2. No caso de 5x7, só alterar para i < 5 e j < 7 ;)

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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