cmdmss 0 Denunciar post Postado Setembro 28, 2009 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
quitZAUMMM 18 Denunciar post Postado Setembro 28, 2009 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
cmdmss 0 Denunciar post Postado Setembro 28, 2009 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
quitZAUMMM 18 Denunciar post Postado Setembro 28, 2009 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
cmdmss 0 Denunciar post Postado Setembro 28, 2009 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
quitZAUMMM 18 Denunciar post Postado Setembro 28, 2009 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
cmdmss 0 Denunciar post Postado Setembro 28, 2009 o que esse sprintf faz? Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Setembro 28, 2009 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
Yur1T3ch 0 Denunciar post Postado Setembro 30, 2009 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
_Isis_ 202 Denunciar post Postado Outubro 1, 2009 #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