• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

lordqwerty

Troca dos valores de um vector em C

2 mensagens neste tópico

Boa tarde a todos.

Como novato que sou em programação, as duvidas surgem frequentemente e como acho este forum espectacular decidi voltar a questionar as "grandes cabeças" deste forum!  :D

Tenho o seguinte problema em mão: Escrever e testar uma rotina que troque os elementos de um vector em posição simétrica

face ao seu centro. O programa deve usar funções e apenas um vector.

O código que eu já fiz, com o Dev C++, é o seguinte:

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

#define MAX 500

int* troca (int veta[], int n)
{
  int i, x, trocavet[MAX];
  for (i=1; i<=0; i--)
  {
      for (x=0; x<n; x++)
      {
          trocavet[x]=veta[i-n];
      }
  }

}
    

main ()
{
     int i, n, vet[MAX], j;
     
     printf("Quantos elementos tem o vector: ");  //Peço ao utilizador o tamanho do vector.
     scanf("%d", &n);
     
     printf("Numero: ");
     for (i=0; i<n; i++)
     {      
      scanf("%d\n", &vet[i]);
     }
     
     for (i=0; i<n; i++)               //Aqui apenas estou a testar se o programa guarda os valores inseridos.
     {
         printf("Numero inserido: \n", vet[i]);
     }
getch();
}

Na minha função tenho dois vectores.... porque não sabia como só utilizar uma. E mesmo assim o programa não funciona bem.  :-[

Agradeço toda a ajuda que me derem.

Cumps,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não precisas de percorrer o array todo, basta percorrer até ao meio. Em cada iteração trocas (usando uma variável auxiliar) o valor que está na posição i com o valor que está na posição simétrica em relação ao meio do vector, que é indicada pelo índice n-i-1.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora