Escreva um programa utilizando a instrução while , que leia um número inteiro maior do que zero e devolva, na tela, a soma de todos os seus algarismos. Por exemplo, o número 251 corresponde ao valor 8 (2 + 5 + 1). Se o número lido não for maior do que zero, o programa terminará com a mensagem "Número inválido".
Respostas
Resposta:
#include <stdio.h>
int main(void) {
int n, soma, aux;
while(1){
soma = 0;
printf("Digite um número: ");
scanf("%d", &n);
aux = n;
if(n<=0){
printf("Número inválido\n");
break;
}
while(n!=0){
soma += n%10;
n /= 10;
}
printf("A soma dos algarimos de %d é: %d\n\n", aux, soma);
}
return 0;
}
Explicação:
Este é um algoritmo simples utilizando a liguagem C. Primeiro lemos um número e armazenamos em uma auxiliar (só para escrevê-lo no final). Após lermos o número verificamos se ele atende a condição de ser maior que zero. Caso não atenda, imprimimos "Número inválido" e encerramos. Caso ele atenda as condições prosseguimos. Enquanto o número for diferente de 0 pegamos o resto da divisão dele por 10, no caso de exemplo 251/10 = 25,1 então o resto é 1 e adicionamos esse valor na nossa variável soma. Depois dividimos esses número por 10 para ir reduzindo o número de algarismos. Repetimos o processo para todos os algarismos e imprimimos a resposta. Se precisar da solução em outra linguagem só avisar.