Função do teto na linguagem C

Função do teto na linguagem C
O idioma C fornece uma extensa biblioteca de funções para resolver operações matemáticas do mais básico ao mais complexo. Em certos casos, é mais conveniente trabalhar com números inteiros nos argumentos de entrada dessas funções ou com seus resultados, seja porque nosso programa deve funcionar apenas com essas quantidades ou porque seus valores fracionários não representariam uma fração significativa no resultado final de a operação.

Para essas operações de arredondamento, o idioma C fornece um conjunto de funções incluídas no "matemática" biblioteca. Para Rounnd uma variável para o número inteiro mais próximo, existe o teto () função. Para arredondar para o número inteiro mais próximo, há a função piso ().

Nisso Linux Dica Artigo, você aprenderá tudo sobre como usar a função para arredondar os valores fracionários para o número inteiro mais próximo. Para ajudá -lo a entender e dominar melhor essa função, criamos exemplos práticos com fragmentos e imagens de código que mostram seu uso com diferentes tipos de variáveis ​​de entrada. Também fornecemos uma descrição teórica desta função, sua sintaxe, argumentos de entrada e saída e os dados aceitos nela.

Sintaxe da função CEIL () na linguagem C

teto duplo (duplo x)

Descrição da função do teto () no idioma C

Esta função roda para o próximo valor inteiro maior da variável numérica WHCIH é especificada em seus argumentos de entrada. O teto () A função é um dos conjuntos de funções fornecidas pelo "matemática" biblioteca e é definida na “matemática.H ”cabeçalho. Para usar esta função, devemos incluí -la em nosso ““.C ” Arquivo o seguinte:

#incluir

Uma vez a “Matemática.O cabeçalho Hy ”está incluído, podemos usar o teto () para arredondar ou o piso () para arredondar, bem como todas as funções nas bibliotecas de matemática. Para obter o arredondamento de "X", você deve chamar essa função especificando o nome da variável em seu argumento de entrada. O teto () Retorna o resultado em "A".

Exemplo: como arredondar um número inteiro fracionário com a função CEIL () no Linux GCC

Neste exemplo, veremos como arredondar um valor fracionário para o próximo número inteiro maior usando a função CEIL no GCC.

O snippet de código a seguir mostra como usar o teto () função para obter o arredondamento de duplo "x" que tenha um valor atribuído de 3.1416. Em seguida, a função printf () é usada para gerar o resultado como "a" no console de comando.

#incluir
#incluir
void main ()

duplo x = 3.1416;
duplo a;
a = teto (x);
printf ("O arredondamento de x é: %f \ n", a);
retornar;

Na imagem a seguir, vemos o resultado no console de comando. Nesse caso, é o arredondamento de 3.1416 é 4.00000:

Problemas comuns com as funções de arredondamento do teto () e piso () e como resolvê -los

Quando usamos as funções e compilamos nosso código, muitas vezes acontece que a compilação fornece o seguinte erro:

"principal.C: (.Texto+0x30): Referência indefinida ao 'teto' "

Isso nos faz procurar erros de sintaxe ou variáveis ​​indefinidas em nosso “.C "ou".Código H ”, já que tudo indica que nosso problema está lá. Mas isso leva a uma perda de tempo valioso, já que nosso problema está na ligação das bibliotecas e na compatibilidade de dados dessas funções.

Para programadores que gostam de saber o motivo de um problema e não apenas resolvê -lo, explicaremos esse erro passo a passo para tornar a programação funcionar mais fluente e evitar carregar bibliotecas desnecessárias para o nosso código.

Para explicar isso, compilamos o código do exemplo anterior da seguinte forma. Na figura a seguir, vemos a compilação de nosso código e o erro referido nesta seção:

Isso ocorre porque desde C99, o GCC divide suas bibliotecas em duas partes - libc e libm. Embora a biblioteca que nos referimos em nosso código seja encontrada em ambos, os tipos de dados que essas funções aceitam em cada uma de suas versões são diferentes, e essa é a fonte do problema. Se o teto () A função é chamada com um int como entrada, o erro desaparece, embora o arredondamento ocorra.

Esses problemas são corrigidos no tempo de compilação, invocando o libm biblioteca na linha de comando que usamos para compilar. O seguinte é o caminho:

Documentos GCC/Principal.c -lm -o c

Conclusão

Nisso Linux Dica artigo, mostramos como usar o teto () função para arredondar os valores fracionários para o número inteiro mais próximo. Explicamos passo a passo sobre como carregar a biblioteca "matemática" para usar esta função. Também mostramos um dos erros mais comuns ao usar essa função e como corrigi -la para obter uma tarefa de programação suave. Esperamos que você tenha achado este artigo de idioma C útil. Veja outro Linux Dica Artigos para mais dicas e informações.