Ir ao conteúdo
  • Cadastre-se

C++ Programa em C++ que exiba quantidade de algarismos de um numero


Posts recomendados

Olá, estou quebrando a cabeça com um exercício de C++ no qual o usuario entre com um numero, e o programa exiba a quantidade de algarismos que esse numero tem. Fiz o codigo em C++ mas não estou conseguindo encontrar a lógica, espero que alguem possa dar uma luz.

 

#include<iostream>
using namespace std;
int main (void)
{
	int num, uni, dez, cen, mi;

	cout<<"Digite o numero ";cin>>num;
	uni=(num/1%10);
	dez=(num/10%10);
	cen=(num/100%10);
	mi=(num/1000%10);
	
	if(num<9)
	cout<<"Algarismos "<<num<<endl;
	
else
	if(num>=10)
	cout<<"Algarismos "<<num<<endl;
else
	if(num>=100)
	cout<<"Algarismos "<<num<<endl;
else
	if(num>=1000) 
	cout<<"Algarismos "<<num<<endl;

	system("pause");
	return 0;
}

 

 

  • Curtir 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Flávio Pedroza

@Flávio Pedroza    seu código não está funcionando no codeblocks ,  essa parte do to_string , o que pode ser ? mas modifiquei seu código e funcionou assim  :

string.thumb.JPG.d5abf751bbb27734c4c1c196de03b44c.JPG

 

#include <iostream>
#include <sstream>
using namespace std;
int main()
{
    int num = 2233303;
    stringstream Resultado;
    Resultado << num;
    cout << "Algarismos: " << (Resultado.str()).length()<<"\n\n\n"<<endl;

    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

14 horas atrás, devair1010 disse:

@Flávio Pedroza

@Flávio Pedroza    seu código não está funcionando no codeblocks ,  essa parte do to_string , o que pode ser ? mas modifiquei seu código e funcionou assim  :

 

 

Veja se usando "#include <string>" funciona o to_string.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Flávio Pedroza @Flávio Pedroza      foi a primeira coisa que pensei e coloquei esse e vários outros includes , e mesmo assim não funcionou  :

 

#include <iostream>
#include <cstring>
#include <string>
#include <string.h>
#include <stdlib.h>
#include <cstdlib>
#include <conio.h>
#include <conio2.h>
#include <sstream>
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;


int main()
{
    int num = 2233303;
    cout << "Algarismos: " << to_string(num).length();

    return 0;
}

 

 

Link para o comentário
Compartilhar em outros sites

Pesquisando vi que é um BUG do compilador usado pelo codeblocks:

https://stackoverflow.com/questions/12975341/to-string-is-not-a-member-of-std-says-g-mingw

https://stackoverflow.com/questions/19893922/c11-to-string-to-working-with-codeblocks-std-c11-flag-already-selected

 

De todo modo, não tem muito importância, pois provavelmente essa função to_string é apenas uma implementação da solução que você usou, com stringstream.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Para entender o exercício tu precisa lembrar o que aprendeu sobre classes e ordens numéricas.

 

Lembrando que:

Se temos números com um (1) algarismo o chamamos de UNIDADE, logo 1,2,3,4,5,6,7,8,9,0 são unidades. 
Se temos números com dois (2) algarismos chamamos de DEZENA, logo 10,20,34,56,78,89,90... Todos os números de 10 a 99 são dezenas.
Se temos números com três (3) algarismos o chamamos de CENTENA, logo todos os números de 100 a 999 são centenas. 
Se temos números com quatro (4) algarismos o chamamos de MILHAR, logo todos os números de 1000 a 9999 são milhares.

 

Combinando as DEZENAS com os MILHARES teremos as DEZENAS DE MILHAR que vão desde 10000 até 99999, são cinco (5) algarismos. 
Combinando as CENTENAS com os MILHARES teremos as CENTENAS DE MILHAR que vão desde 100000 até 999999, são seis (6) algarismos.

 

O ideal pro exercício é você validar a faixa do valor digitado para não ter que ir ate números de 13 algarismos (CENTENAS DE TRILHÕES) ou mais, lembrando que os números são infinitos. Logicamente isso é uma abordagem para quem esta dando os primeiros passos em programação e ainda não estudou vetores, estruturas de repetição, ponteiros, biblioteca padrão do c++ etc etc.

 

Por ex:

if (n < 1 || n > 9999)
	cout << "Fora da faixa permitida!" << endl;
else if (n < 10)
    cout <<"Algarismos: 1"<<endl;
else if (n < 100)
    cout << "Algarismos: 2" <<endl;
else if (n < 1000)
    cout << "Algarismos: 3" <<endl;
else if (n < 10000)
    cout << "Algarismos: 4" <<endl;
 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Consegui fazer usando um um looping de repetição, foi bem simples na verdade. 

#include<iostream>
using namespace std;
int main (void)
{
	int num, tam;
	tam=0;
	cout<<"Digite o numero ";cin>>num;
	while(num>0)
	{
	tam++;
	num=num/10;
    }
    cout<<"Total de algarismos: "<<tam<<endl;
	system("pause");
	return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!