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

suzy

[C] Ajuda: Onde está o erro? (Resolvido)

6 mensagens neste tópico

//Desenvolva uma funcao que receba, como argumento, um valor inteiro positivo e devolva
//o numero de digitos do valor recebido.

#include<stdio.h>
int digitos(int x)
{
int n,resto;
  while(n>0)
  {
  resto=resto+n%10;
  n=n/10;
  }
  return resto;
}

main()
{
int numero,total;
printf(" introduza o numero\n");
scanf("%d",&numero);
total=digitos(numero);
printf(" a soma dos digitos e %d\n",total);
fflush(stdin);
getchar();
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#include<stdio.h>
int digitos(int x)
{
int resto;
resto=0;
  while(x>0)
  {
  resto=resto+x%10;
  x=x/10;
  }
  return resto;
}

main()
{
int numero,total;
printf(" introduza o numero\n");
scanf("%d",&numero);
total=digitos(numero);
printf(" a soma dos digitos e %d\n",total);
fflush(stdin);
getchar();
}

penso que sera assim o erro que dava na função mas parece que tens na propria função um erro que não vai dar o resultado, que é o resto tem que ser inicializado em 0

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim derrepente sem testar:

int digitos(int x)
{
int count = 1;

while(x/(10*count)!=0) count++;
return count; 
}

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