Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

noob of programmation

Algoritmo com vetor.

Recommended Posts

Tentei fazer esse algoritmo com vetor e não consegui, qualquer ajuda será muito bem vinda.

Desde já, valeu galera.





1. Elaborar um algoritmo que lê um conjunto de 30 valores e os coloca em 2 vetores conforme forem pares ou ímpares. O tamanho do vetor é de 5 posições. Se algum vetor estiver cheio, escrevê-lo.Terminada a leitura escrever o conteúdo dos dois vetores. Cada vetor pode ser preenchido tantas vezes quantas for necessário.


#include <stdio.h>

int main(void){

int par[5], impar[5], num, i, resto, a, b, d;

for(i=0; i<30; i++){
printf("\nQual o numero %i ?", ++d);
scanf(" %d ", &num);
resto = num % 2;
}

if(resto == 0){
for(a=0; a<5; a++){
par[a] = num;
}

for(a=0; a<5; a++){
printf("\n %d ", par[a]);
}
}

if(resto != 0){
for(b=0; b<5; b++){
impar[b] = num;
}

for(b=0; b<5; b++){
printf("\n %d", impar[b]);
}
}


return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora que o código foi identado, dê uma olhada e me responda:

1- Qual é o valor final da variável num?

2- Vc acha que if vai percorrer o vetor sozinho?

3- Qual o valor inicial da variável d que vc está incrementando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade Isis o código que eu queria postar era esse aqui em baixo, só que depois de algum tempo mexendo nele eu esqueci dessa alteração inútil que eu tinha feito e quando lembrei não podia mais editar.Essa segunda questão que você me fez é o problema porque como sou autodidata(meu curso de engenharia aborda rapidamente programação) e comecei a estudar sozinho vetores ontem não consegui entender muito bem como mostrar os vetores armazenados.

 

#include <stdio.h>
 
int main(void){
 
int par[5], impar[5], num, i, resto, a, b, d=0;
 
for(i=0; i<30; i++){
 
printf("\nQual o numero %i ?", ++d);
scanf(" %d ", &num);
resto = num % 2;
 
if(resto == 0){
 
for(a=0; a<5; a++){
par[a] = num;}
 
for(a=0; a<5; a++){
printf("\n %d ", par[a]);}}
 
if(resto != 0){
 
for(b=0; b<5; b++){
impar = num;}
 
for(b=0; b<5; b++){
printf("\n %d", impar);}}}
 
 
return 0;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja as diferenças:

 

 

#include <stdio.h>
 
int main(void) {
   int pares[5] = {0,0,0,0,0};
   int pares_livres = 5;
   int impares[5] = {0,0,0,0,0};
   int impares_livres = 5;
   int tmp;
 
   for(int i=0; i<30; i++) {
      printf("Número %d: ", i+1);
      scanf("%d", &tmp);
 
      if (tmp & 1 == 0) {
         if (!pares_livres) {
             for(int j = 0; j<5; j++)
                 printf("%d ", pares[j]);
             puts("");
         } else {
             pares[5-pares_livres] = tmp;
             pares_livres++;
         }
      } else {
         if (!impares_livres) {
             for(int j = 0; j<5; j++)
                 printf("%d ", impares[j]);
             puts("");
         } else {
             impares[5-impares_livres] = tmp;
             impares_livres++;
         }
   }
 
   for(int j = 0; j<5; j++)
       printf("%d ", pares[j]);
 
   for(int j = 0; j<5; j++)
       printf("%d ", impares[j]);
   return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.