Ir ao conteúdo

Deslocar elementos do vetor


Valéria_Farias

Posts recomendados

Postado

Gente pra começo de conversa que não sei nem por onde começo porque achei meio confuso por favor alguém me ajude!!!!!

Escreva um programa em C, que leia um conjunto de números inteiros, armazenando-os em um vetor. :mellow:

O conjunto de números lidos deve ser menor que o tamanho do vetor (Uma posição a menos).:eek:

A seguir o programa deve ler um valor e uma posição (índice), inseridas pelo usuário. Esse valor deve ser armazenado na posição especificada, deslocando todos os elementos seguintes, uma posição a frente. Imprimir o vetor.:(

Postado

Escreva um programa em C, que leia um conjunto de números inteiros, armazenando-os em um vetor.

O conjunto de números lidos deve ser menor que o tamanho do vetor (Uma posição a menos).

A seguir o programa deve ler um valor e uma posição (índice), inseridas pelo usuário. Esse valor deve ser armazenado na posição especificada, deslocando todos os elementos seguintes, uma posição a frente. Imprimir o vetor.

Primeiro tu tens que declarar um vetor com x números, por exemplo 20

depois tu vai ter que pedir para o usuário digitar um valor e uma posição.. aqui vais ter que especificar que a posição para ele digitar deve estar entre 1 e 19... ainda pode por um if verificando se o valor digitado realmente está entre o limite exigido.

Então tu armazena dentro do vetor[posicaousuario], quando for solicitado para ele digitar outro valor, não será mas pedida a posição, tu tens que colocar aquele valor na posição seguinte a inserida primeiramente.

No caso seria:

vetor[posicaousuario] = valor posição digitada

vetor[posicaousuario] = recebe o valor digitado

Próximos valores:

vetor[posicaousuario+1] = outro valor digitado

posicaousuario = posicaousuario + 1;

^_^

Postado
#include <stdio.h>

#define MAX 10 // definição para o tamanho do vetor;

main()

{

int vetor[MAX], i, usuario, posicao;

printf("Informe os numeros dos vetores de %d posições\n", MAX-1);

for (i=0; i<MAX-1; i++) // for para preencher o vetor, igual pedido no enunciado;

{

printf("%do posicao: ", i+1);

scanf("%d", &vetor);

}

puts("Informe o numero e a posicao a ser salva no vetor:");

scanf("%d%d", &usuario, &posicao); // o usario vai informar primeiro o número e em seguida a posição;

if (posicao >= MAX)

{

puts ("posicao nao existe no vetor, saindo...");

system("PAUSE"); // pausa o programa para poder ler a mensagem;

exit(-1); // sai do programa caso não tenha a posição no vetor;

}

for (i=MAX-1; i >= posicao; i--) // vai pegar o numero do vetor de tras para frente;

{

if (i == posicao) // se encontrar a posição digitado pelo usuario;

{

vetor[i+1] = vetor; //efetua a troca;

vetor = usuario; // e coloca o numero do usuario na posição pedida;

}

else // caso não encontre ira somente deslocar o vetor;

{

vetor[i+1] = vetor;

}

}

for (i=0; i<MAX; i++)

{

printf("posicao %d -->> %d\n", i, vetor); //vai mostrar o vetor todo no final do programa;

}

system("PAUSE");

return 0;

}

Bom acho que foi mais isso que foi pedido no enunciado?

Fiz ele com os comentarios, mas o ideal seria você entender o que foi feito, nem que seja fazendo um debug no programa passo a passo.

Não sei até onde você já aprendeu, se já tiver aprendido do, while, da para fazer bastante coisa legal no programa para deixar ele bem completo e cheio de filula.

obs: Não consegui arrumar a identação aqui no forum de jeito nenhum... :(

Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!