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
  • DiF alterou o título para leia um valor int positivo e menor que 1000, armazenar em uma variável inteira

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!