Ir ao conteúdo

Posts recomendados

Postado

To começando a aprender e queria q alguém me dissesse como faço pra resolver esse exercício : Faça um algoritmo que leia um valor inteiro positivo e menor que 1000, armazene-o em uma variável inteira e determine a soma dos dígitos que formam o valor. Exemplo: o valor 453 tem soma dos dígitos igual a 12 (4 + 5 + 3) .   

  • Obrigado 1
Postado

Segue uma forma bem simples de resolver o exercício.


#include <stdio.h>

int main(void){
int x, y, z, w, s, num;

scanf("%d", &num);

if (num < 10){
printf("%d\n", num);
return 0;
}

for(x = s = 0, z = 1, y = num - (num % z);
x < ((num < 100) ? 2 :
(num > 100 && num < 1000) ? 3 : 4); ++x){

w = (y / z % 10);
z *= 10;
y -= (y % z);
s += w;
}

printf("%d", s);
return 0;
}

  • Curtir 2
Postado

Basta você fazer a divisão por 10, somando a parte fracionada. A parte inteira, será atribuída novamente a variável inicial.


unsigned valor = 0;
unsigned soma = 0;

printf("Entre com um valor de 0 a 999: ");
fscanf(stdin, "%d%*c", &valor);

while( valor > 0 )
{
soma = soma + (valor % 10);
valor = valor / 10;
}

printf("Resultado: %d\n", soma);

  • Curtir 2
  • 5 anos depois...
Postado
Em 03/04/2013 às 11:25, KrS disse:

To começando a aprender e queria q alguém me dissesse como faço pra resolver esse exercício : Faça um algoritmo que leia um valor inteiro positivo e menor que 1000, armazene-o em uma variável inteira e determine a soma dos dígitos que formam o valor. Exemplo: o valor 453 tem soma dos dígitos igual a 12 (4 + 5 + 3) .

#include <stdio.h>
#include <stdlib.h>


main(){
    int  soma=0, valor=0;
    printf("Informe um valor de 0 a 999: ");
    scanf("%d", &valor);



     soma = soma + (valor % 10);
        valor = valor / 10;
        
         soma = soma + (valor % 10);
        valor = valor / 10;
    
     soma = soma + (valor % 10);
        valor = valor / 10;
    

    printf("A soma dos digitos: %d\n",soma);
    system("pause");
}

 

  • Curtir 1
  • 5 anos depois...
Postado

E esta expressão:

#include <stdio.h>
int main (void) {
  int d= 100 ,q= 0;
  int n= 0; scanf ("%d",&n);
  long sum= 0;
  while (n) {
    q= n/ d;
    n-= d* q;
    sum+= q;
    d/= 10;
    }
  printf ("%ld%c",sum,'\n');
  return 0;
  }

🙂 

  • Curtir 1
Postado

Tópico antigo. A minha resposta não foi das melhores.

 

É como foi dito ali, basta efetuar a soma do módulo do número por 10 e depois dividir.

 

while(n){
   soma += n % 10;
   n /= 10;
}

 

  • Obrigado 1
  • Haha 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...