Ir para conteúdo

POWERED BY:

Arquivado

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

cmdmss

Como fazer um contador de posições?!

Recommended Posts

Senhores, a duvida é a seguinte...

 

o usuario digita o numero 123456789 por exemplo. Dai quero saber quantas posições existem no numero que o usuario digitou... como faço para descobrir atraves o C? Sei que tenho de fazer um for... mas nao consigo pensar na logica desse for

 

for (i=0;i<??;i++)

 

alguem tem alguma ideia?!

 

obrigado a quem ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim qnts posições??

Se eu entendi bem você pode transformar em *char e usar o strlen();

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

quantas posições... ue! tipo... o usuario escreve 12345... esse numero tem 5 posições.... 5 caracteres!!! mas como faço pra contar isso no c...?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo isso:

 

#include <stdio.h>

int main(){
    int num, pos;
    char aux[99];
    scanf("%d%*c", &num);
    printf("%d", sprintf(aux, "%d", num));
    return 0;
}

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao eh bem isso nao... ai você criou um vetor com 99 posições...

 

o usuario vai digitar um numero qualquer... nao se sabe o numero de posições que ele vai digitar... dai eu quero descobrir esse numero de posições...!!! O exercicio q estou tentando faze é este aqui:

 

1. (a) Escreva uma função que recebe um número inteiro n>0 e devolve o número de dígitos de n e o primeiro dígito de n.

 

 

Sou estudante dessa linguagem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom n sei se você percebeu + pro cara digitar um numero maior de 98 digitos acho meio dificil.

e para pegar o primeiro digito da pra você usar o aux[0]

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele joga num char* uma saida formatada.

tenta assim:

#include <stdio.h>

#define TAMANHO 30
int main(){
    char *num;
    num =(char *)malloc(sizeof(char) * TAMANHO);
    if(!num) exit(1);
    scanf("%s%*c", num);
    printf("%d", strlen(num));
    free(num);
    return 0;
}

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi corretamente, mas acho que é o seguinte:

#include<stdio.h>

#include<stdlib.h>

int main()

{

int numeroEntrada,potencias10,posicoes,primeiroNumero;

scanf("%d",&numeroEntrada);

posicoes=1;

potencias10=10;

while(numeroEntrada-potencias10>=0)

{

posicoes++;

potencias10*=10;

}

potencias10/=10;

primeiroNumero=(int)numeroEntrada/potencias10;

printf("Numero de posicoes: %d\nPrimeiro numero: %d\n",posicoes,primeiroNumero);

system("pause");

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>
#include <math.h>
int main() {
int num;
scanf("%d", &num);

int digitos = log10f((float)num)+1;

printf("Qtde de digitos: %d\n", digitos, num/pow(10,digitos-1));
return 0;
}

 

Ninguém disse que precisava ser com loop.

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.