Ir ao conteúdo
  • Cadastre-se

Dificuldade Vetor / Iniciante C


cristhianetais

Posts recomendados

Pessoal,

Estou com um algoritmo em vetor para entregar e empaquei no código, agora são 05:19 da manhã e nem sei mais o que já fiz ou o que devo fazer...

Se alguém puder dar uma olhada e apontar meu erro eu agradeço.

Estou utilizando Turbo C de compilador, sei que é ruim, mas é o que estamos usando na universidade.

Escreva um programa que carregue um vetor K(10) com números aleatórios entre 1 e 20

e escreva o vetor. Troque, a seguir, os elementos da posição ímpar com os da posição

par imediatamente seguintes e escreva o vetor assim modificado.

Estou enviando que já fiz:


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

main()
{
int vetor[11];
int i, j, aux, par, impar;
randomize();

clrscr();

par = 0;
impar = 0;

printf("\n\nNumeros Sorteados Iniciais:");
printf("\n\n");
for(i = 1; i <= 10; i++)
{
vetor[i] = (rand() % 20) + 1;
printf("%4d", vetor[i]);
}

printf("\n\nTroca:");
printf("\n\n");
for(i = 1; i <= 10; i++)
{
if(i%2 == 0)
{
aux = vetor[i];
vetor[i] = vetor[j];
vetor[j] = aux;
}
else
{
aux = vetor[j];
vetor[j] = vetor[i];
vetor[i] = aux;
}
}


for(i = 1; i <= 10; i++)
{
printf("%4d", vetor[i]);
}

getch();


}

post-785192-13884957903884_thumb.jpg

Link para o comentário
Compartilhar em outros sites

A única confusão que você fez foi na hora de encontrar o valor ímpar, no mais, o código está certo.

Tente assim:


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

int main(void)
{

int vetor[10];

int i, j, aux;

srand(time(NULL)); /** Inicializa o random **/

/** Sorteio dos numeros **/
printf("\n\nNumeros Sorteados Iniciais:");
printf("\n\n");
for ( i = 0; i < 10; i++ )
{
vetor[i] = rand() % 19 + 1;
printf("%4d", vetor[i]);
}

/** Efetua troca **/
printf("\n\nTroca:");
printf("\n\n");
for(i = 0; i < 10; i++)
{
if ( vetor[i] % 2 != 0)
{
for(j = i; j < 10; j++)
{
if ( vetor[j] % 2 == 0)
{
aux = vetor[i];
vetor[i] = vetor[j];
vetor[j] = aux;
}
}
}
}


for(i = 1; i <= 10; i++)
{
printf("%4d", vetor[i]);
}

getch();

return 0;

}

Link para o comentário
Compartilhar em outros sites

Oi Screen,

Primeiramente muito obrigada por responder....

Bom, ainda não é isso o que meu algoritmo precisa fazer. Ele precisa trocar o conteudo das posições, ou seja, posicao impar [1] pela posicao par[2] subsequente, posicao impar [3] pela posicao par [4] e assim por diante.

E estou empacada... :(

Link para o comentário
Compartilhar em outros sites

Mais simples ainda, basta apenas trocar o trecho de comparação e mostra por esse:


/** Efetua troca **/
printf("\n\nTroca:");
printf("\n\n");
for(i = 0; i < 10; i = i+2)
{
aux = vetor[i];
vetor[i] = vetor[i+1];
vetor[i+1] = aux;
}


for(i = 0; i < 10; i++)
{
printf("%4d", vetor[i]);
}

Link para o comentário
Compartilhar em outros sites

Oi Screen,

Um pouco depois de te responder fiz o teste de mesa e consegui realizar o algoritmo...

Meu grande problema é o teste de mesa... com vetor me perco nele...

Mas saiu... :wacko: Ufa

Muito obrigada por responder... Agora que estou de férias, vou atrás de bom material em PHP...

Se tiver alguma sugestão...

Abraço ^_^

Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!