Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu estou aprendendo C, e não estou conseguindo fazer este exercício. Não sei o que estou fazendo de errado. Desde já agradeço
#include <stdio.h>
int numeroPerfeito(int num[3]){
int divisor, soma = 0, i;
for(i = 0; i < 3; i++){
for(divisor = 1; divisor <= num/2; divisor++)
if(num % divisor == 0)
soma = soma + divisor;
if(soma == num)
return 1;
else
return 0;
}
}
int main(){
int num[3], i;
for(i = 0; i < 3; i++){
printf("Digite um numero: ");
scanf("%d", &num);
if(numeroPerfeito (num, 3) == 1)
printf("\n Numero perifeito");
else
printf("\n Nao eh um numero perfeito");
}
}
@Alessandra Nastassja, temos alguns problemas...
1) No scanf a atribuição está incorreta. Como tu declara um vetor de inteiros de 3 posições, na hora de atribuir tu deve indicar em qual posição vai guardar o número. Como tu está dentro de um for, ficaria assim: