ALGORITMOS E IMPLEMENTAÇÕES ⇒ Estrutura de repetição
Moderador: [ Moderadores TTB ]
-
- Mensagens: 1765
- Registrado em: Dom 07 Dez, 2014 00:08
- Última visita: 17-03-24
Out 2015
22
15:59
Estrutura de repetição
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.
Bom, se der para responder usando a estrutura while agradeço.
Ser ̶m̶e̶l̶h̶o̶r̶ pior a cada dia
Out 2015
23
22:04
Re: Estrutura de repetição
Olá, Lucas.
O exemplo abaixo, bem básico, é em C++.
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;
}
Última edição: csmarcelo (Sex 23 Out, 2015 22:04). Total de 1 vez.
-
- Mensagens: 1765
- Registrado em: Dom 07 Dez, 2014 00:08
- Última visita: 17-03-24
Out 2015
23
22:45
Re: Estrutura de repetição
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.
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
-
- Mensagens: 1765
- Registrado em: Dom 07 Dez, 2014 00:08
- Última visita: 17-03-24
Out 2015
23
22:47
Re: Estrutura de repetição
é 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
Out 2015
24
01:58
Re: Estrutura de repetição
Boa noite!
Faça a seguinte alteração:
Espero ter ajudado!
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;
}
Última edição: baltuilhe (Sáb 24 Out, 2015 01:58). Total de 1 vez.
Out 2015
24
06:58
Re: Estrutura de repetição
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.
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.
Última edição: csmarcelo (Sáb 24 Out, 2015 06:58). Total de 1 vez.
Out 2015
24
12:34
Re: Estrutura de repetição
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!
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;
}
Última edição: baltuilhe (Sáb 24 Out, 2015 12:34). Total de 1 vez.
-
- Mensagens: 1765
- Registrado em: Dom 07 Dez, 2014 00:08
- Última visita: 17-03-24
Out 2015
24
14:34
Re: Estrutura de repetição
valeu gente, ajudou bastante.
Ser ̶m̶e̶l̶h̶o̶r̶ pior a cada dia
Out 2015
24
19:51
Re: Estrutura de repetição
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
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
-
- Tópicos Semelhantes
- Respostas
- Exibições
- Última msg
-
- 1 Respostas
- 573 Exibições
-
Última msg por petras
-
- 1 Respostas
- 563 Exibições
-
Última msg por careca
-
- 1 Respostas
- 457 Exibições
-
Última msg por LostWalker
-
- 1 Respostas
- 1073 Exibições
-
Última msg por caju
-
- 1 Respostas
- 306 Exibições
-
Última msg por LeoJaques