Ir ao conteúdo

C Programa para dizer se é inteiro ou decimal


Ir à solução Resolvido por Flávio Pedroza,

Posts recomendados

Postado

@Joel Martins considerando que

  • você não leu um valor e
  • só tem uma variável e
  • ela é inteira, int,

 

a resposta deve ser sim, para qualquer valor, quando você começa a ler.

 

Tivesse você um valor decimal e um inteiro que acharia da seguinte ideia: divide por um e coloca o resultado em um inteiro. multiplica por um e subtrai do original pra ver o que sobra...

 

Tente com 5/2, também conhecido como dois e meio e veja o que acha.

Postado

Cuidado com o uso de ponto flutuante fazendo casting para inteiros, isso vai gerar problemas

 

/

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

bool float_is_integer(float f, float epsilon)
{
    if (fabsf(roundf(f) - f) <= epsilon)
        return true;
    return false;
}

int main()
{
    //      3 == (3 ^ (1/20)) ^ 20
    float tres = powf(powf(3.0f, 0.05f), 20.0f); // Está conta retorna deve retornar 3

    if (float_is_integer(tres, 0.00001f))
        printf("%.0f\n", tres);
    else
        printf("Nao eh inteiro\n");
        
    return 0;
}

 

A conta acima matematicamente tem resultado 3, mas se efetuar a conta com ponto flutuante vai retornar 2.9999992847, portanto a função permite você adicionar uma margem de erro (paramentro epsilon).

 

Postado
  Em 19/02/2021 às 22:00, Flávio Pedroza disse:
#include <stdio.h>

int main()
{
    float b = 2.5;

    if(b==(int)b) printf("E inteiro");
  	else printf("Nao e inteiro");
  return 0;
  }

 

Expandir  

Obrigado. O meu objetivo era fazer isso para depois completar outro programa que estou a fazer. Agora já percebi . Em vez de eu dar a variável, peço ao utilizador.

Obrigado:)

#include <stdio.h>

int main()
{
    float b;

    printf("Introduz um valor-->");
    scanf("%f",&b);

    if(b==(int)b)

        printf("E inteiro");

  	else
        printf("Nao e inteiro");

  return 0;

  }

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Mostrar mais  

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!