Ir para conteúdo
Fórum Script Brasil
  • 0

Maior Par e Menor Impar


VANDER_HELP_DESK

Pergunta

Boa Noite

Pessoal,

Sou novo em c++, gostaria d ajuda de todos. Preciso criar um algoritimo da seguinte forma, segue abaixo :

Algoritimo que leia n numeros inteiros até que a leitura seja igual a "0" e retorne após todas as leituras, o maior valor PAR lido, o menor valor IMPAR lido e a soma de todos os valores lidos.

Desde já agradeço pela atenção de todos.

Fico no aguardo.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
O que já fez?

VTente começar e poste as dúvidas.

OBS:

PAR -> divisível por zero, ou seja: num % 2 == 0

Ai bl ?

Segue a baixo o algoritimo. Mas não esta funcionando corretamente,

alguém pode me ajudar ?

Grato pela atenção de todos.

# include <stdio.h>

# include <conio.h>

# include <stdlib.h>

main()

{

int nr,aux,par,impar,maior_par,menor_impar,soma_total;

aux = nr;

par = nr;

impar = nr;

maior_par = par;

menor_impar = impar;

soma_total = 0;

printf(" ==================================================== \n");

printf(" RETORNA O MAIOR PAR E O MENOR IMPAR DIGITADO \n");

printf(" ==================================================== \n\n");

while( nr != 0 )

{

printf("Informe um numero qualquer ...:");

scanf("%d", & nr);

if ( nr == 0 )

{

printf("\n");

printf(" *** P R O G R A M A F I N A L I Z A D O *** \n\n");

printf(" Usuario digitou ZERO < 0 > \n\n");

}

else{

aux = ( nr % 2 );

if ( aux == 0 )

{

par = nr;

}

if ( par > maior_par )

{

maior_par = par;

}

else{

impar = nr;

if ( impar < menor_impar )

{

menor_impar = impar;

}

}

}

soma_total = ( soma_total + nr );

}

system("pause");

system("cls");

printf(" =========================================== \n");

printf(" SAIDA DE DADOS \n");

printf(" =========================================== \n\n");

printf("Maior PAR ..................: %d \n",maior_par);

printf("Menor IMPAR ................: %d \n",menor_impar);

printf("Soma de todos os NUMEROS ...: %d",soma_total);

getch();

}

Link para o comentário
Compartilhar em outros sites

  • 0

#include<iostream.h>

#include<conio.h>

#include<math.h>

void main (void)

{ int n,maior_par,maior_impar;

maior_par = 0;

maior_impar = 1;

cout<<"DIGITE UM NUMERO: ";

cout<<"\n";

cin>>n;

while (n!=0)

{

if (n % 2 == 0 && n > maior_par)

{ maior_par = n;}

else if (n % 2 != 0 && n > maior_impar)

{ maior_impar = n;}

}

cout<<"O MAIOR PAR É: "<<maior_par;

cout<<"\n";

cout<<"O MAIOR IMPAR É: "<<maior_impar;

cout<<"PRESSIONE QUALQUER TECLA PARA FECHAR.";

getch();

}

[\code]

Editado por Chais
Link para o comentário
Compartilhar em outros sites

  • 0

Boa Tarde

Caros.

Primeiro teste que realizei foi testar digitando o zero, " Nesse caso me retorna o valor 2 para o maior par e menor impar "

O segundo teste foi digitar numeros aleatoriamente exemplo, digitei ( 5,7,9,10,15,17,20,35) a saida de dados gerou o seguinte

Maior par : 20

Menor Impar : 2

Grato pela atenção de todos.

#include<iostream.h>

#include<conio.h>

#include<math.h>

void main (void)

{ int n,maior_par,maior_impar;

maior_par = 0;

maior_impar = 1;

cout<<"DIGITE UM NUMERO: ";

cout<<"\n";

cin>>n;

while (n!=0)

{

if (n % 2 == 0 && n > maior_par)

{ maior_par = n;}

else if (n % 2 != 0 && n > maior_impar)

{ maior_impar = n;}

}

cout<<"O MAIOR PAR É: "<<maior_par;

cout<<"\n";

cout<<"O MAIOR IMPAR É: "<<maior_impar;

cout<<"PRESSIONE QUALQUER TECLA PARA FECHAR.";

getch();

}

[\code]

Link para o comentário
Compartilhar em outros sites

  • 0

é verdade, mas olha esse seu codigo aqui:

int nr,aux,par,impar,maior_par,menor_impar,soma_total;
      aux = nr;
      par = nr;
      impar = nr;
      maior_par = par;
      menor_impar = impar;[/code] assim q você declara uma variavel, o valor dela vai ser exatamente o q tava na area de memoria onde ela foi instanciada. e você não sabe o q vai ser, então você vai acabar setando um valor nd a ve pra essas variaveis. pra evitar isso, declare o nr valendo 0. tipo assim:
[code]int nr  = 0;
e ai mude o seu while pra ele poder entrar. em vez de:
while( nr != 0 )
{
    ...
}[/code] faca
[code]do
{
    ...
} while( nr != 0 );
e na hora q você ta testando aqui:
if ( impar < menor_impar )
note q o menor_impar comeca com 0 ne. e nunca o q ele digitou vai ser menor q 0 ne. então faca assim:
if ( impar < menor_impar || menor_impar == 0)

com essas alteracoes deve funcionar, tenta ai.

Link para o comentário
Compartilhar em outros sites

  • 0

no código que eu fiz, maior_par recebe zero porque se ele digitar zero de cara, o zero é o maior número par digitado. E joguei o número 1 no maior impar, pois se ele digitar zero, o maior impar que poderia existir é 1. de resto, se ele entrar com demais dados, o programa funciona corretamente. Ou não?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...