• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

ta correcto???

6 mensagens neste tópico

: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:









0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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....

0

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