Ir para o conteúdo
suzy

ta correcto???

Mensagens Recomendadas

suzy    0
suzy

:eek:








include<stdio.h>

int funcao (int n)
   {
   int total=0;
   
   n=n/10;
   total=total+1;
   return total;
   }
main()
{
int x,soma;
printf(" introduza o numero\n");
scanf("%d",&x);
soma=funcao(x);
printf(" o numero total e %d\n",soma);
fflush(stdin);
getchar();
}

//Desenvolva uma função que receba, como argumento, um valor inteiro positivo e devolva
//o numero de dígitos do valor recebido.   :wallbash:









Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

Está mal, devolve-te sempre um. Tens de por um ciclo na função que chamas. O raciocinio está correcto tens é de por um ciclo do tipo enquanto o número for maior que 0 divides por 10 e incrementas.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

Continua sempre a dar 1...Não sei se já corrigiste...

Não corrigiu ela mas corrijo eu:

include<stdio.h>

int funcao (int n)
   {
   int total=0;
   while(n>0) {
      n=n/10;
      total=total+1;
   }
   return total;
   }
main()
{
int x,soma;
printf(" introduza o numero\n");
scanf("%d",&x);
soma=funcao(x);
printf(" o numero total e %d\n",soma);
fflush(stdin);
getchar();
}

Testa se quiseres mas em princípio deve dar. Agora não tenho tempo.. ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
sandro_G    0
sandro_G

Uma sugestão: como o exercicio só é elaborado para numeros positivos podia-se por um "if" ou um "while" para que desse uma mensagem de erro quando se introduzi-se um numero negatvo...É só uma sugestão....

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade