Ir ao conteúdo

Posts recomendados

Postado

Prezados boa noite,

 

Alguém pode me enviar o algorítimo desse exercício abaixo, desde já deus abençoe!

 

Tendo como base dois vetores A e B de 5 elementos de números inteiros e não ordenados, gerar o vetor C de 5 elementos que será preenchido com os 5 menores números dos vetores A e B.

  • Curtir 1
  • Amei 1
Postado
2 horas atrás, M.Araujo disse:

Prezados boa noite,

 

Alguém pode me enviar o algorítimo desse exercício abaixo, desde já deus abençoe!

Pensem comigo ...

 

Essa modalidade de ajuda solicitada é muito comum aqui nesse setor do fórum: repleto de monitores. Contudo, buscar O melhor, O segundo melhor, e ainda, O terceiro melhor aluno que seu colega mais inteligente do seu curso pra realizar tutoria lá (mentoring) é muito mais legal.

"

 

ou 

 

Tenta resolver, sem se preocupar muito com erros e depois posta para correção dos "monitores" do fórum porque corrigir o trabalho é por interpretação dar uma resposta, mas pode ser também uma correção de sintaxe algo mais simples assim não é totalmente antiético, logo nenhum moderador poderá queixar-se com base nas regras.

"

  • Curtir 1
Postado
13 horas atrás, Mauro Britivaldo disse:

Pensem comigo ...

 

Essa modalidade de ajuda solicitada é muito comum aqui nesse setor do fórum: repleto de monitores. Contudo, buscar O melhor, O segundo melhor, e ainda, O terceiro melhor aluno que seu colega mais inteligente do seu curso pra realizar tutoria lá (mentoring) é muito mais legal.

"

 

ou 

 

Tenta resolver, sem se preocupar muito com erros e depois posta para correção dos "monitores" do fórum porque corrigir o trabalho é por interpretação dar uma resposta, mas pode ser também uma correção de sintaxe algo mais simples assim não é totalmente antiético, logo nenhum moderador poderá queixar-se com base nas regras.

"

 

Boa tarde, primeiramente obrigado por responder o meu tópico. Tentei fazer sim, segue abaixo o código, só não sei fazer essa parte de juntar os 2 vetores em um só e exibir os menores valores, segue o código:

 

#include<stdlib.h>
#include<stdio.h>

#define MAX 5
#define TAM 5

int main(void)
{
    int vetorA[MAX];
    int vetorB[MAX];
    int vetorC[TAM];
    register int i = 0;
    register int t = 0;

    printf("Insira os valores do vetor A:\n");
    for( i = 0; i < MAX; i++ )
    {
        printf("A[%d]: ",i+1);
        scanf("%d",&vetorA[i]);
    }

    printf("Insira os valores do Vetor B:\n");
    for( i = 0; i < MAX; i++ )
    {
        printf("B[%d]: ", i+1 );
        scanf("%d", &vetorB[i] );
    }

    for( i = 0; i < MAX; i++ )
    {
        vetorC[t++] = vetorA[i];
        vetorC[t++] = vetorB[i];
    }

    printf("Os menores valores do Vetor C sao:\n");
    for( t = 0; t < TAM; t++ )
    {
        printf("%d ", vetorC[t]);
    }

    //system("PAUSE");

    return 0;

}

 

Se puder me ajudar te agradeço.

  • Curtir 1
  • Amei 1
Postado

Escreva seu programa em torno dos dados. Sempre.

 

Considere também uma construção assim
 

    const int testeA[MAX] = { 2, -4,  6, -8 , 10 };
    const int testeB[MAX] = { -2, 4, -6,  8 ,-10 }; 

    const int outroA[MAX] = { -1, 1, 1, 1, 1 };
    const int outroB[MAX] = {  0, 0, 0, 0, 0 };

 

E escreva seu programa com dados que você pode ir alterando e testando até dar tudo certo. Já deve ter visto o quanto é chato para cada simples teste entrar com 10 números. 


Não faça isso. Só perde tempo. Quando estiver funcionando você insere a leitura, que não acrescenta nada.

 

Sobre um algoritmo

 

Considere os dados e entenda que você tem que olhar todos. Os menores podem estar só no fim do segundo vetor, pode ser tudo igual... Então pode fazer em dois passos:

  • primeiro encontra o menor elemento de todos, do jeito mais ingênuo, olhando um por um afinal tem que olhar um por um.
  • De posse desse conhecimento a segunda fase é um loop, de 2 até o total que precisa para preencher o segundo vetor. Olhando de novo um a um, mas ao invés de procurar o menor procura o menor que seja maior ou igual ao último que colocou no vetor de saída...
Postado

84047389_Interrogao.png.b7a9a181492934b6f7a318af48fd4866.png@M.Araujo

image.png.5e7602cb263896568faed639d89c1a04.pngLevando só em consideração sua fala e a impressão inicial dela com seu código, vou concluir o seguinte: Teu plano é copiar os vetores para um outro com capacidade de 10 elementos e depois ordenar ele.

"

 

Se funciona? é claro que sim.

O algoritmo de ordenação pode ser qualquer um que venha a ter entediamento. 

"

 

Depois que copiar os dois vetores chame a função de ordenação. Copiar é fácil percorra o vetor A da esquerda para direita,  e da direita para esquerda o vetor B no mesmo loop.

 

AB = [A--------AB--------B]

Se parece complicado tente com dois loops, um inicia onde o outro terminar.

"

 

Na etapa seguinte vem imprimir a sequência dos menores números, mas pode ser que alguns estejam repetidos. Escreva algo que trate esse problema.

Ex.

int cntade =  0; // Quantidade de valores impressos.
int impresso =  2147483647; // Um número inteiro grande inicial.

for (int unsigned indice =  0; (cntade < 5) && (indice < 10); ++ indice) {
	if (impresso != lista[indice]) {
		impresso =  lista[indice];

		printf ("%d ", impresso);

		++ cntade; // incrementa um impresso
	}
}

trocar impressão por gravar no vetor C é fácil

 

 

 

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!