Ir para conteúdo

Recommended Posts

Bom dia a todos.

Fiz um algorítimo aqui é não esta aparecendo no printf quando é perfeito e quando não é, alguém pode me ajudar?

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//Determinar os quadrados perfeitos pertencentes a um determinado intervalo de inteiros [a, b], com a< b.
//Exemplos de quadrados perfeitos: 4, 9, 16, 25, 36, 49, ...

int main() {
    int a, b, i;
    double resto;

    //Primeiro item do intervalo
    printf("A: ");
    scanf("%d", &a);

    //Segundo item do intervalo
    printf("B: ");
    scanf("%d", &b);

    // Laço para pegar os numeros entre o valor a e o b
    for (i = a + 1; i < b; i++)
    {
        //tirando a raiz quadrada de um numero
        resto = sqrt(i);

    /*
        FMOD pegar o resto de um numero double.

        Se o resultado da raiz quadrada tiver resto 0,
        ele é um quadrado perfeito. È dividido por um para
        manter seu valor original.
    */
      if(fmod(resto, 1) == 0) {
          /*Imprimindo todos os numeros que são quadrados perfeitos
            dentro do intervalo pedido.
          */
           printf("%d\n", i);
      }

    }

    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Maura De Lima, colei o teu código aqui (sem qualquer edição) e ele rodou corretamente. Entrei com o intervalo de 1 a 17 e printou 4, 9 e 16.

 

Tu obtém algum erro ou ele não printa nada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.