• Matéria: Informática
  • Autor: Brunasouzasena520
  • Perguntado 3 anos atrás

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

respondido por: gabrielhschumy
0

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.

Perguntas similares