Ir para conteúdo

POWERED BY:

Arquivado

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

#GSTTi

Quebrando a cabeça do iniciante aqui!

Recommended Posts

Como colocar pra ele ler so os numeros pares? e pra contar quantos pares tem?

 

 

#include <stdio.h>

int main()
{
  int vetor[4], i, menu=0, cont=0, contpar, aux;

  for (i = 0; i < 4; i++) {
      	vetor[i] = 0;
  }
  for (i = 0; i < 4; i++) {
      	printf ("\n Digite um numero:   ");
      	scanf   ("%d",&vetor[i]);
  }
  while (menu != 9) {
  printf ("\n\n Escolha uma opçao:");
  printf (" 1 - Numeros Pares ");
  printf (" 2 - Numeros Impares");
  printf (" 3 - Numeros Negativos");
  printf (" 4 - Maior e Menor");
  printf (" 5 - Media dos Numeros Informados");
  printf (" 6 - Ordem Inversa");
  printf (" 7 - Numero Que Mais se Repetiu");
  printf (" 8 - Ordem Crescente");
  printf (" 9 - Sair");
  printf ("\n ");
  scanf ("%d",&menu);

         switch(menu){
               case 1: { cont = 0;
               while (cont < 4) {
               for (i = 0; i < (4 -1); i++ ) {
               if ((vetor[i] % 2)==0){
               aux = vetor[i%2];
               vetor[i] = vetor[i%2];
               vetor[i] = aux;
               contpar++;
}
}
cont++;
}
               for (i = 0; i < 4; i++) {
               printf ("\n ---Os Numeros pares:  %d", vetor[i]);
                	}
               break;
               }
               case 3: {
               break;
               }
               default: {
               printf ("\n Digito não válido");
               break;
}
}
}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, em primeiro lugar, recomendo fortemente você fazer aquela endentação no seu código, nunca ficaria 3 } no final de um código sem motivo, eles estão ali porque precisam e você precisa saber onde para e onde termina cada for, while, etc. Você pode ter conseguido fazer o programa compilar de primeira usando a lógica, porém quando você voltar no código depois de um tempo, você terá problemas para entendê-lo, imagine os outros.

 

Aqui está o seu código com certas modificações

 

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

int main()
{
  int vetor[4], i, menu=0;//Tirei algumas variáveis
  int pares[4], j;// pares[4] para armazenar os numeros pares 

  for (i = 0; i < 4; i++)
  {
       vetor[i] = 0;
  }
  for (i = 0; i < 4; i++)
  {
       printf ("\n Digite um numero: ");
       scanf   ("%d",&vetor[i]);
  }
  while (menu != 9) 
  {
        system("cls");
        printf ("\n\n Escolha uma opçao:\n");
        printf (" 1 - Numeros Pares \n");
        printf (" 2 - Numeros Impares\n");
        printf (" 3 - Numeros Negativos\n");
        printf (" 4 - Maior e Menor\n");
        printf (" 5 - Media dos Numeros Informados\n");
        printf (" 6 - Ordem Inversa\n");
        printf (" 7 - Numero Que Mais se Repetiu\n");
        printf (" 8 - Ordem Crescente\n");
        printf (" 9 - Sair\n");
        printf ("\n ");
        scanf ("%d",&menu);

        switch(menu)
        {
              case 1: 
              {
                   j=0;
                   for (i = 0; i < 4; i++)//Varrer o vetor[i]
                   {
                        if ( (vetor[i]%2)==0)//Verifica se o número que está na posição i do vetor é par. 
                        {   //Caso afirmativo, entra no if
                            pares[j]=vetor[i];//Coloca o valor do vetor em outro vetor para depois mostrar os números pares
                            j++;//Para saber quantos número tem no vetor
                        }
                   }
              }
              printf ("\n ---Os Numeros pares:  ");     
              for (i = 0; i < j; i++) //Um for para correr o vetor e imprimir cada número
              {
                  printf ("%d ", pares[i]);
              }
              printf("\n");
              system("pause");//Para a tela esperando uma tecla ser digitada, fiz isso para você ver os números pares.
              break;

              default: 
              {
                   printf ("\n Digito nao valido");
                   break;
              }
        }
  }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda.. to tentando terminar ele inteiro, poderia me ajudar.. não consigo terminar!!

 

 

 

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

int main()

{
  int vetor[20], i, menu=0;
  int pares[20], j;
  int impar[20], l;
  int negativo[20], m;
  int maior, menor,;
  float media,soma;
  int cont=0,aux;
  int repetidos,temp;

  for (i = 0; i < 20; i++)
  {
       vetor[i] = 0;
  }
  for (i = 0; i < 20; i++)
  {
       printf ("\n Digite um numero: ");
       scanf   ("%d",&vetor[i]);
  }
  while (menu != 9)
  {
        system("cls");
        printf ("\n\n Escolha uma opçao:\n");
        printf (" 1 - Numeros Pares \n");// preciso que conte quantos sao os numeros pares
        printf (" 2 - Numeros Impares\n"); // preciso que conte quanto sao os numeros impares
        printf (" 3 - Numeros Negativos\n");
        printf (" 4 - Maior e Menor\n"); //nao consigo fazer
        printf (" 5 - Media dos Numeros Informados\n");
        printf (" 6 - Ordem Inversa\n"); //nao consigo fazer
        printf (" 7 - Numero Que Mais se Repetiu\n"); //nao consigo fazer
        printf (" 8 - Ordem Crescente\n"); // tenho duvidas se ta certo
        printf (" 9 - Sair\n");
        printf ("\n ");
        scanf ("%d",&menu);

        switch(menu)
        {
              case 1://numeros pares
              {
                   j=0;
                   for (i = 0; i < 20; i++)
                   {
                        if ( (vetor[i]%2)==0)
                        {
                            pares[j]=vetor[i];
                            j++;
                        }
                   }
              }
              printf ("\n ---Os Numeros pares:  ");
              for (i = 0; i < j; i++)
              {
                  printf ("%d ", pares[i]);
              }
              printf("\n");
              system("pause");
              break;

              case 2: // Numeros Impares
              {
                   l=0;
                   for (i = 0; i < 20; i++)
                   {
                        if ( (vetor[i]%2)==1)
                        {
                            impar[l]=vetor[i];
                            l++;
                        }
                   }
              }
              printf ("\n ---Os Numeros impares:  ");
              for (i = 0; i < l; i++)
              {
                  printf ("%d ", impar[i]);
              }
              printf("\n");
              system("pause");
              break;

              case 3: // Numeros Negativos
              {
                   m=0;
                   for (i = 0; i < 20; i++)
                   {
                        if ( (vetor[i] < 0))
                        {
                            negativo[m]=vetor[i];
                            m++;
                        }
                   }
              }
              printf ("\n ---Os Numeros Negativos:  ");
              for (i = 0; i < m; i++)
              {
                  printf ("%d ", negativo[i]);
              }
              printf("\n");
              system("pause");
              break;

                   case 4: // Maior e Menor (Nao tá funcionando o Maior)
              {

                   for (i = 0; i < 20; i++)
                   {
                       if (i==0) {

                       maior = vetor[i];
                       menor = vetor[i];
                   }
                   for(i=0;i<vetor[i];i++)
                   {
                           if(vetor[i]>maior)
                           maior=vetor[i];
                           else
                           {
                           if (vetor[i]< menor)
                           menor = vetor[i];
                           }
                   }
                printf("O maior numero: %d\n",maior);
                printf("O menor numero: %d\n",menor);
                   }
              }
              printf("\n");
              system("pause");
              break;

                   case 5: // Media
                   {
                   for (i = 0; i < 20; i++)
                   {
                   soma=soma+vetor[i];
                   }
                   {
                    media=soma/20;
                   }
               printf("A media dos valores informados: %.2f",media);
              }
              printf("\n");
              system("pause");
              break;

                   case 8: {  // Ordem Crescente
                                  cont = 0;
                                  while (cont < 20) {
                                                for (i = 0; i < (4 -1); i++ ) {
                                                        if (vetor[i] > vetor[i+1]) {
                                                               aux = vetor[i];
                                                               vetor[i] = vetor[i+1];
                                                               vetor[i+1] = aux;
                                                        }
                                                }
                                  cont++;
                                  }
                                  for (i = 0; i < 20; i++) {
                                          printf ("\n ---Ordem Crescente:  %d", vetor[i]);
                                  }
                               printf("\n");
                               system("pause");
                               break;

                       case 9://Sair do Programa
                        {
                       break;
                               }
                       default:
                               {
                   printf ("\n Digito nao valido");
                       break;
                               }
                   }
           }
       }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

seguinte, vamos lá

 

pra começar

 

Para os casos números 1 e 2

.....
  printf ("\n ---Os Numeros pares:  ");
  for (i = 0; i < j; i++)
  {
      printf ("%d ", pares[i]);
  }
  printf("\n\t\t%d numeros pares",j); //Essa é a linha que você incluirá para mostrar quantos pares
                                      //a gente conta quantos números tem no vetor e coloca esse valor em j.
                                      //o mesmo vale para os números ímpares, no caso, a variável l.
  printf("\n");
  system("pause");
.....

 

.....
  case 4: // Maior e Menor
  {
      maior = vetor[0];
      menor = vetor[0];
      for(i=0;i < 20;i++)//Varrendo o vetor
      {
          if(vetor[i]>maior)
          {
              maior=vetor[i];
          }
          else
          {
              if (vetor[i]< menor)
              {
                  menor = vetor[i];
              }
          }
      }
      printf("O maior numero: %d\n",maior);
      printf("O menor numero: %d\n",menor);
  }
.....

 

Para o caso número 6, faça o varredura do vetor do fim até o começo, ou seja,

for (i = 19; i >= 0; i--)//Como o vetor tem 20 posições, o última casa é 19, vetor começa em 0.

 

Para o caso número 7, estou pensando sobre ele, no algoritmo que eu montei, se o número da primeira posição for o que repete mais, ele retorna um valor estranho, se você quiser pensar sobre ele, aqui está o código, depois eu penso mais um pouco

 

Mais um detalhe, ele não informa se há mais de um número que se repete mais no vetor, por exemplo, no vetor há três números 4 e três números 5, ele mostra o primeiro número que pegar.

              case 7: //Número Que Mais se Repetiu
              {
                   for (i=0;i<5;i++)
                   {
                       cont=0;
                       for (j=0;j<5;j++)
                       {
                           if (vetor[i]==vetor[j])
                           {
                               cont++;
                           }
                       }
                       rep[i]=cont;
                   }
                   maior = rep[0];
                   for (i=0;i<5;i++)
                   {
                       if (rep[i]>maior)
                       {
                           maior=rep[i];
                           j=i;
                       }
                   }
                   printf("Numero que repetiu mais foi o %d\n\n",vetor[j]);
              }
              system("pause");

 

Sobre o último caso, eu rodei o seu algoritmo e não rodou adequadamente, sugiro que você vá procurar "Algoritmos de ordenação", há vários deles, qualquer coisa, fala aí

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.