lordqwerty Posted December 9, 2009 at 12:49 PM Report Share #299468 Posted December 9, 2009 at 12:49 PM 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! 😄 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, Link to comment Share on other sites More sharing options...
Baderous Posted December 9, 2009 at 04:28 PM Report Share #299491 Posted December 9, 2009 at 04:28 PM 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now