Ir ao conteúdo
  • Cadastre-se
paulo leal

C imprimir um vetor de dentro para fora

Recommended Posts

Peça ao usuário que ele informe um valor impar que determinara o tamanho para um determinado vetor. Esse valor deve ser impar, caso o valor seja par peça que o usuário redigite o numero. Após saber o tamanho do vetor. Peça ao usuário que insira valores no vetor. Depois de preencher o vetor. Imprima-o para fora EX:

4    5   6    8    0       A qui é um vetor preenchido de tamanho 5 apos preenchido deve mostrar do jeito que esta ai em baixo:

           6

         5  8

         4  0

eu consequir fazer isso mas não dar certo

#include <stdio.h>
#define y 5

int main(){
    int n[y]={4,5,6,8,0};
    int aux,i,j;
    aux=y/2;
    printf("%d\n",n[aux]);
    for(i=aux-1;i>=0;i--){
        printf("%d",n[i]);
        for(j=aux+1;j<7;j++){
            printf("%d",n[j]);
            printf("\n");
            break;
        }
    }
    getchar();
}

execução

6

58

48

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>
#define y 5

int main(){
    int n[y]={4,5,6,8,0};
    int aux,i,j;
    aux=y/2;
  
    printf("%d\n",n[aux]);
    for(i=aux-1, j=aux+1; i>=0;i--, j++){
        printf("%d\n",n[i]);
   	printf("%d\n",n[j]);
    }
}

É possível percorrer esse vetor de dentro para fora usando um único laço FOR. Basta uma única condição de parada (quando chegar no início do vetor, posição 0, já que a quantidade de valores à esquerda e à direita do elemento do meio são iguais). 

 

Qualquer dúvida, basta perguntar!

 

Grande abraço!

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Olinad212 valeu cara tai o código completo 

#include <stdio.h>
#define MAX 1000

int main(){
    int n[MAX];
    int aux,i,j,tam;
    printf("Digite um numero impar: ");
    scanf("%d",&tam);
    printf("preencha o vetor com %d numero\n",tam);
    for(i=0;i<tam;i++){
        scanf("%d",&n[i]);
    }
    aux=tam/2;
    printf("%d\n",n[aux]);
    for(i=aux-1, j=aux+1; i>=0;i--, j++){
        printf("%d",n[i]);
   	printf("%d\n",n[j]);
    }
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@paulo leal , Oi!

Eu diria que 'teu código' não é todo certo, se avaliarmos também a posição dos números.

Observe a saída do teu algoritmo pronto(para os valores de entrada do exemplo) só se parecem:

 6
5 8
4 0

Diferencia nos espaços que organiza melhor a disposição dos número. No exemplo temos isso, não solução não.

~~ / ~~

Compartilhar este post


Link para o post
Compartilhar em outros sites

@AnsiC eu fiz assim

#include <stdio.h>
#define MAX 1000

int main(){
    int n[MAX];
    int aux,i,j,tam;
    printf("Digite um numero impar: ");
    scanf("%d",&tam);
    printf("preencha o vetor com %d numero\n",tam);
    for(i=0;i<tam;i++){
        scanf("%d",&n[i]);
    }
    aux=tam/2;
    printf("%3d\n",n[aux]);
    for(i=aux-1, j=aux+1; i>=0;i--, j++){
        printf("%2d",n[i]);
        printf("%2d\n",n[j]);
    }
    getchar();
    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×