Olá, eu sou iniciante em programação em C e surgiu uma dúvida sobre um erro no programa:
#include <stdio.h>
#include <stdlib.h>
/* Crie um programa que le um número natural n do teclado e imprime todos os divisores
desse numero fazendo tambem para com todos os inteiros positivos menores que esse número.
Ao final, imprima também a soma dos divisores encontrados para cada numero*/
// Não funciona
int main(void)
{
int i, total, n=1, cont=0, j;
printf("\n\nEscreva um numero inteiro positivo: ");
scanf("%d", &n);
for(j=n; j!=0; j--)
{
total=0;
cont=0;
for(i=1; i<=n; i++)
{
if(n%i==0)
{
cont++;
printf("D%d=%d ",cont ,i);
total+=i;
}
}
if(total>0) printf("\nA soma dos divisores de %d eh: %d\n\n",n ,total);
}
return 0;
}
Ele não muda o número decrementando em uma unidade e então em vez de mostrar todos os inteiros inferiores ao digitado ele mostra o mesmo.
Pergunta
TRS
Olá, eu sou iniciante em programação em C e surgiu uma dúvida sobre um erro no programa:
#include <stdio.h> #include <stdlib.h> /* Crie um programa que le um número natural n do teclado e imprime todos os divisores desse numero fazendo tambem para com todos os inteiros positivos menores que esse número. Ao final, imprima também a soma dos divisores encontrados para cada numero*/ // Não funciona int main(void) { int i, total, n=1, cont=0, j; printf("\n\nEscreva um numero inteiro positivo: "); scanf("%d", &n); for(j=n; j!=0; j--) { total=0; cont=0; for(i=1; i<=n; i++) { if(n%i==0) { cont++; printf("D%d=%d ",cont ,i); total+=i; } } if(total>0) printf("\nA soma dos divisores de %d eh: %d\n\n",n ,total); } return 0; }Ele não muda o número decrementando em uma unidade e então em vez de mostrar todos os inteiros inferiores ao digitado ele mostra o mesmo.
Se alguém puder ajudar eu agradeço!!
Editado por TRSLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.