Ir ao conteúdo

Posts recomendados

Postado

Faça um programa que receba um vetor V de N inteiros e construa um vetor W com os mesmos elementos de V, porém invertidos, mostre os vetores V e W e o maior elemento de V e o menor elemento de W.
 

Entrada:

A entrada contém apenas um caso de teste com 2 linhas. Na primeira linha há um inteiro N, 1 < N ≤1000, representando o tamanho do vetor V. Na segunda linha há N valores inteiros separados por um espaço em branco cada, que são os valores do vetor V.
Saída:

O programa deve gerar 4 linhas de saída. A primeira linha deve haver N inteiros separados por um espaço em branco cada, representando os elementos do vetor V. Atenção, após o último elemento de V não deve haver um espaço em branco. A segunda linha deve haver N inteiros separados por um espaço em branco cada, representando os elementos do vetor W. Atenção, após o último elemento de V não deve haver um espaço em branco. A terceira linha deve haver apenas um inteiro, representando o maior elemento de V. A quarta linha deve haver apenas um inteiro, representando o menor elemento de W. Após imprimir a quarta linha da saída, quebre uma linha.

 

Exemplo:

Entrada:

5
7 8 4 9 2

Saída

7 8 4 9 2
2 9 4 8 7
9

2

Entrada

8
235 6 23 5 78 123 89 4

Saída

235 6 23 5 78 123 89 4
4 89 123 78 5 23 6 235
235
4

Entrada

10
1 2 3 4 5 6 7 8 9 0

Saída

1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1
9

0

 

Código <- Não está funcionando o Maior e nem o Menor

 

 

#include <stdio.h>

int main(){
    int n, vetor[1000], maior, menor, i, j;

    scanf("%d", &n);

    for (i = 0; i < n; i++){
        scanf("%d", &vetor);
    }
    for(i=0; i<n; i++){
        printf("%d ",vetor);
    }
    printf("\n");
    for (j = n-1; j >= 0; j--){
        printf("%d ", vetor[j]);
    }
    printf("\n");
    if(i==0){
        maior=vetor;
        menor=vetor;
    }
    if(vetor>maior){
        maior=vetor;
    }
    else if(vetor<menor){
        menor=vetor;
    }
    printf("%d\n",maior);
    printf("%d\n",menor);
    
}

Postado

@Mauro Britivaldo Eu usei o primeiro for que eu usei anteriormente para pegar os valores e fiz os testes para ver qual era o maior número inserido quando outro fosse maior eu trocava o anterior mais não funcionou, fiz isso para o Maior e o Menor.  

Postado
4 minutos atrás, Eduardo_Braz disse:

@Mauro Britivaldo Eu usei o primeiro for que eu usei anteriormente para pegar os valores e fiz os testes para ver qual era o maior número inserido quando outro fosse maior eu trocava o anterior mais não funcionou, fiz isso para o Maior e o Menor.  

Sinapses correta!

 

Revise o código.

Postado

@Eduardo_Braz Seu código tem uma série de erros:

1- Suas variáveis precisam ser inicializadas, caso contrário elas conterão lixo de memória.

   int n = 0, vetor[1000], maior = 0, menor = 0, i = 0, j = 0;

    // Inicializa todas as posições do vetor
    for (i = 0; i < 1000; ++i) {
        vetor[i] = 0;
    }

2- Não precisa economizar linhas, elas são de graça. Fazer todas as declarações em uma única linha, torna massante o trabalho de ler seu código.

int n = 0;
int vetor[1000];
int maior = 0;
int menor = 0;
int i = 0;
int j = 0;

3- Recomendo inicializar as variáveis maior e menor usando os limites do tipo primitivo. Assim é quase certo que o valor será sobrescrito quando for a hora. Para isso é necessário importar a biblioteca limits.h.

// Inclua a biblioteca
#include <limits.h>

// Depois inicialize as variáveis
int maior = INT_MIN;
int menor = INT_MAX;

4- Use nomes mais coerentes nas variáveis.

int tamanho = 0;    // Antigo n

5- Diga ao usuário o que ele tem fazer.

printf("Digite o tamanho do vetor: ");
scanf(" %d", &tamanho);

6- Para atribuir e acessar um valor do vetor, é necessário informar a posição desejada.

for (i = 0; i < tamanho; i++) {
    printf("Digite o valor %i: ", (i + 1));
    scanf(" %d", &vetor[i]);
}

7- A verificação para determinar o maior e menor pode ser feita usando if aninhado. e deve ser feita dentro de um loop.

for (i = 0; i < tamanho; ++i) {
    if (i == 0) {
        maior = vetor[i];
        menor = vetor[i];
    } else if (vetor[i] > maior) {
        maior = vetor[i];
    } else if (vetor[i] < menor) {
        menor = vetor[i];
    }
}

8- A variável j é dispensável.

// Antes usava o j
for (i = tamanho - 1; i >= 0; i--) {
    printf("%d ", vetor[i]);
}

9- Garanta que o tamanho esteja em uma faixa válida.

do {
    printf("Digite o tamanho do vetor: ");
    scanf(" %d", &tamanho);
} while (tamanho < 2 || tamanho > 1000);

 

  • Amei 1
Postado
17 minutos atrás, Eduardo_Braz disse:

@AdrianoSiqueira Muito obrigado funcionou perfeitamente.

Muito Obrigado 

Você nunca vai aprender se continuar pegando respostas dos outros, certamente o senso comum manda aprender com seus erro se dando a oportunidade de revisa-los. Contudo isso é um problema seu.

 

Obrigado.

Postado
8 horas atrás, Eduardo_Braz disse:

@Mauro Britivaldo Eu desmontei o código e refiz 

Seu raciocínio já resolveu parte do problema só não tinha conseguido codificá-lo. Todos os elementos essências para resposta foram apresentados e dominados, ou seja, você tem o conhecimento da linguagem pra resolver só falta organiza-los. 

 

Certo já que desmontou e refez então acredito ter feito as devidas observações. Ok!

  • Obrigado 1
Postado

@Mauro Britivaldo Eu agradeço demais a sua ajuda me fez perceber que eu tenho que focar primeiro o meu raciocínio fazer o programa em português para mondar o esqueleto do código aí sim começar a desenvolver o mesmo.

 

Muito obrigado mesmo vós vem me ensinando muito esse código eu mandei com as suas observações nos meus posts anteriores e eu agradeço demais a vossa ajuda. Já fazia 10 anos que eu não mexia com essa linguagem de programação eu usava mais o Python pela a sua facilidade e o seu grande avanço e também por causa que ela é uma das principais linguagem mais usada no mercado atualmente, exemplo o site do Instagram é feito por ela

  • 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!