• 🔴 [ENEM 2025 PPL Live 05] Matemática - Resolução de 156 até 160
  • 🔴 [ENEM 2025 PPL Live 04] Matemática - Resolução de 151 até 155
  • 🔴 [ENEM 2025 PPL Live 03] Matemática - Resolução de 146 até 150
  • 🔴 [ENEM 2025 PPL Live 02] Matemática - Resolução de 141 até 145
  • 🔴 [ENEM 2025 PPL Live 01] Matemática - Resolução de 136 até 140
  • 🔴 [ENEM 2025 Belém Live 09] Matemática - Resolução de 176 até 180

ALGORITMOS E IMPLEMENTAÇÕESEstrutura de repetição

Implementação de equações dentro da computação, programação e algoritmos.
Avatar do usuário
LucasPinafi Offline
5 - Mestre
Mensagens: 1800
Registrado em: 07 Dez 2014, 00:08
Agradeceu: 315 vezes
Agradeceram: 1137 vezes
Out 2015 22 15:59

Estrutura de repetição

Mensagem por LucasPinafi »

Crie um algoritmo, em C/C++, que receba um número inteiro de 3 dígitos e diga se o primeiro digito é ou não par. Se a pessoa digitar um número com maior ou menor ou quantidade de dígitos faça aparecer a seguinte mensagem na tela "digite um número válido".

Bom, se der para responder usando a estrutura while agradeço.
Ser ̶m̶e̶l̶h̶o̶r̶ pior a cada dia
Avatar do usuário
csmarcelo Offline
6 - Doutor
Mensagens: 5113
Registrado em: 22 Jun 2012, 22:03
Agradeceu: 355 vezes
Agradeceram: 2820 vezes
Out 2015 23 22:04

Re: Estrutura de repetição

Mensagem por csmarcelo »

Olá, Lucas.

O exemplo abaixo, bem básico, é em C++.

Código: Selecionar todos

#include <iostream>
#include <sstream>
using namespace std;

int main()
{
  string read;
  int number;
  
  while (true) {
  	
  	cout << "Informe um numero de 3 digitos (0 para sair): ";
  	getline(cin, read);
  	
  	if (read.size() != 3) {
  		cout << "Digite um numero valido." << endl;
  		continue;
	}

  	stringstream(read) >> number;
  
  	if (number == 0) break;
  	
  	cout << "O numero digitado" << ((number % 2) != 0 ? " nao" : "") << " e par." << endl;
	}

  return 0;
}
Editado pela última vez por csmarcelo em 23 Out 2015, 22:04, em um total de 1 vez.
Avatar do usuário
LucasPinafi Offline
5 - Mestre
Mensagens: 1800
Registrado em: 07 Dez 2014, 00:08
Agradeceu: 315 vezes
Agradeceram: 1137 vezes
Out 2015 23 22:45

Re: Estrutura de repetição

Mensagem por LucasPinafi »

Muito obrigado, professor.
Mas lendo, vi que o algoritmo informa se o número (por exemplo 566) é par ou não; o exercício pede se o primeiro digito é par.
Se eu digitar 566 , aparecerá o número é par. Obrigado pela atenção.
Ser ̶m̶e̶l̶h̶o̶r̶ pior a cada dia
Avatar do usuário
LucasPinafi Offline
5 - Mestre
Mensagens: 1800
Registrado em: 07 Dez 2014, 00:08
Agradeceu: 315 vezes
Agradeceram: 1137 vezes
Out 2015 23 22:47

Re: Estrutura de repetição

Mensagem por LucasPinafi »

é nessa parte que estou com dificuldade. Como faço para mostrar somente a paridade do primeiro digito?
Ser ̶m̶e̶l̶h̶o̶r̶ pior a cada dia
Avatar do usuário
baltuilhe Offline
2 - Nerd
Mensagens: 256
Registrado em: 05 Abr 2015, 16:39
Agradeceu: 11 vezes
Agradeceram: 122 vezes
Out 2015 24 01:58

Re: Estrutura de repetição

Mensagem por baltuilhe »

Boa noite!

Faça a seguinte alteração:

Código: Selecionar todos

#include <iostream>
#include <sstream>
using namespace std;

int main()
{
  string read;
  int number;
  
  while (true) {
     
     cout << "Informe um numero de 3 digitos (0 para sair): ";
     getline(cin, read);
     
     if (read.size() != 3) {
        cout << "Digite um numero valido." << endl;
        continue;
   }

     stringstream(read) >> number;
  
     if (number == 0) break;

     number /= 100; // Isso ira 'achar' o 1o. digito
     
     cout << "O numero digitado" << ((number % 2) != 0 ? " nao" : "") << " e par." << endl;
   }

  return 0;
}
Espero ter ajudado!
Editado pela última vez por baltuilhe em 24 Out 2015, 01:58, em um total de 1 vez.
Avatar do usuário
csmarcelo Offline
6 - Doutor
Mensagens: 5113
Registrado em: 22 Jun 2012, 22:03
Agradeceu: 355 vezes
Agradeceram: 2820 vezes
Out 2015 24 06:58

Re: Estrutura de repetição

Mensagem por csmarcelo »

Obrigado pela correção, baltuilhe. Esqueci desse pequeno detalhe.

Aproveitando, há uma melhoria que pode ser feita (na verdade, que deve ser feita): o programa considera, por exemplo, o literal 021 como um número de 3 dígitos válido.
Editado pela última vez por csmarcelo em 24 Out 2015, 06:58, em um total de 1 vez.
Avatar do usuário
baltuilhe Offline
2 - Nerd
Mensagens: 256
Registrado em: 05 Abr 2015, 16:39
Agradeceu: 11 vezes
Agradeceram: 122 vezes
Out 2015 24 12:34

Re: Estrutura de repetição

Mensagem por baltuilhe »

Bom dia!

Fiz mais duas correções:
1a. Ele não parava quando se digitava o zero (pois o teste estava no lugar errado)
2a. E incluí o que percebeu com relação ao zero.

Valeu! :)

Código: Selecionar todos

#include <iostream>
#include <sstream>
using namespace std;

int main()
{
	string read;
	int number;

	while (true)
	{
		cout << "Informe um numero de 3 digitos (0 para sair): ";
		getline(cin, read);

		stringstream(read) >> number;

		if (number == 0)
			break;

		if ((read.size() != 3) || (number / 100 == 0))
		{
			cout << "Digite um numero valido." << endl;
			continue;
		}
	
		number = number / 100;
		
		cout << "O 1o. digito do numero digitado" << ((number % 2) != 0 ? " nao" : "") << " e par." << endl;
	}

	return 0;
}
Editado pela última vez por baltuilhe em 24 Out 2015, 12:34, em um total de 1 vez.
Avatar do usuário
LucasPinafi Offline
5 - Mestre
Mensagens: 1800
Registrado em: 07 Dez 2014, 00:08
Agradeceu: 315 vezes
Agradeceram: 1137 vezes
Out 2015 24 14:34

Re: Estrutura de repetição

Mensagem por LucasPinafi »

valeu gente, ajudou bastante.
Ser ̶m̶e̶l̶h̶o̶r̶ pior a cada dia
Avatar do usuário
manerinhu Offline
1 - Trainee
Mensagens: 266
Registrado em: 27 Out 2011, 00:14
Agradeceu: 65 vezes
Agradeceram: 124 vezes
Out 2015 24 19:51

Re: Estrutura de repetição

Mensagem por manerinhu »

foi usado o stringstream e a divisão por 100...
se vc precisasse de uma outra casa em específico, vc perderia os numeros anteriores, ou precisaria alocar memoria adicional para cada possivel digito...
uma saída que evita tudo isso é acessar as posições da "string" (palavra) em questão
e isso vc faz por "read.str()", onde i é a posição lida da esquerda para a direita, começando em 0
Responder
  • Tópicos Semelhantes
    Resp.
    Exibições
    Últ. msg

Voltar para “ALGORITMOS E IMPLEMENTAÇÕES”