Inverte Vetor e encontrar o Maior e Melhor em C - C/C#/C++ - Clube do Hardware
Inverte Vetor e encontrar o Maior e Melhor em C
Por Eduardo_Braz, 17 de novembro em C/C#/C++
Eduardo_Braz 34
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.
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.
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.
7 8 4 9 2
2 9 4 8 7
235 6 23 5 78 123 89 4
4 89 123 78 5 23 6 235
Código <- Não está funcionando o Maior e nem o Menor
int n, vetor[1000], maior, menor, i, j;
scanf("%d", &vetor);
printf("%d ",vetor);
for (j = n-1; j >= 0; j--){
printf("%d ", vetor[j]);
maior=vetor;
menor=vetor;
if(vetor>maior){
else if(vetor<menor){
printf("%d\n",maior);
printf("%d\n",menor);
Mauro Britivaldo 1.438
Relate qual foi o raciocínio usado para determinar maior e menor elemento? Isso ficou em código pouco claro.
@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.
4 minutos atrás, Eduardo_Braz disse:
Sinapses correta!
Revise o código.
2 minutos atrás, Mauro Britivaldo disse:
AdrianoSiqueira 138
@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
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.
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
// 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.
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) {
menor = vetor[i];
} else if (vetor[i] > maior) {
} else if (vetor[i] < menor) {
8- A variável j é dispensável.
// Antes usava o j
for (i = tamanho - 1; i >= 0; i--) {
9- Garanta que o tamanho esteja em uma faixa válida.
} while (tamanho < 2 || tamanho > 1000);
@AdrianoSiqueira Muito obrigado funcionou perfeitamente.
17 minutos atrás, Eduardo_Braz disse:
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.
@Mauro Britivaldo Eu desmontei o código e refiz
8 horas atrás, Eduardo_Braz disse:
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!
@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