Problema ao compilar [RESOLVIDO]

1. Problema ao compilar [RESOLVIDO]

gilmar ribeiro santana
gilmarribeiro

(usa Outra)

Enviado em 14/03/2020 - 07:50h

Olá pessoal,
Eu sou iniciante em programação e tenho feito alguns programas pequenos e simples para conhecer a programação.
Dentre esses programas, um deles estou tendo problemas ao compilar. Ele me mostra erro no 'ceil'. Alguém poderia me ajudar informando qual a maneira correta de utilizar o ceil?
Sou usuário linux mint e utilizo o VS Code.

Abaixo segue meu código:

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

int main(void){

float pi = 3.14159;
float raio, area, renTinta, qtdTinta, qtdLata;
float arredonda_pcima = 0.0;

printf("\nQual o raio da mesa?(medida em metros)\n");
scanf("%f", &raio);
printf("\nQual o rendmento da tinta?(padrão 5m/l)\n");
scanf("%f", &renTinta);

area = pi * ( raio * raio );

qtdTinta = (area / renTinta);
qtdLata = (qtdTinta / 10);
arredonda_pcima = ceil(qtdLata);

printf("\npara uma mesa de raio %.2f e área de %.2f será consumido %.2f de tinta e será(ão) necessária(as) %.0f latas\n\n", raio, area, qtdTinta, arredonda_pcima );


return 0;
}

Ao compilar o terminal me dá essa mensagem:
> Executing task: /usr/bin/gcc -g '/home/gilmar/Documents/Projeto FAC em C/fac16.c' -o '/home/gilmar/Documents/Projeto FAC em C/fac16' <

/tmp/ccSNK2jO.o: In function `main':
/home/gilmar/Documents/Projeto FAC em C/fac16.c:19: undefined reference to `ceil'
collect2: error: ld returned 1 exit status
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.


  


2. Re: Problema ao compilar [RESOLVIDO]

Paulo Jr
Pebis

(usa Debian)

Enviado em 14/03/2020 - 13:30h


Usa a flag -lm no final da linha...
Por exemplo

gcc -o seuprograma seuprograma.c -lm


3. Re: Problema ao compilar [RESOLVIDO]

gilmar ribeiro santana
gilmarribeiro

(usa Outra)

Enviado em 14/03/2020 - 15:22h

Pebis escreveu:


Usa a flag -lm no final da linha...
Por exemplo

gcc -o seuprograma seuprograma.c -lm


Muito obrigado @Pebis. Funcionou perfeitamente.
Você tem alguma resposta sobre o motivo de não ter conseguido compilar?
Tem alguma documentação sobre essa opção -lm?




4. Re: Problema ao compilar

Ismael Felipe Ferreira dos santos
IsmaelSantos

(usa Ubuntu)

Enviado em 14/03/2020 - 23:12h

Você tem alguma resposta sobre o motivo de não ter conseguido compilar?

Frecura! kkk
Bincadeiras a parte, o lm chama a biblioteca de matemática, ao que parece para o gcc o #include<math.h> não é suficiente. Por esse e outros motivos eu sempre compilo com o g++, sim ele serve para c também.

float pi = 3.14159;

Eu recomendo que você use:
#define M_PI PI 

M_PI já é pré-definida na math.h mas eu prefiro chamar-la de PI, além disso recomendo que use variaveis tipo double no lugar de float, não custa nada.

qtdLata = (qtdTinta / 10);

Note que 10 é int do tipo e qtdTinta é do tipo float, para evitar que ele converta 10 para float (ou pior, qtdTinta para int), sempre use 10.0 assim com ponto decimal mesmo.

printf("\npara uma...


Evite linhas muito longas, eu uso linhas com no máximo 80 colunas. O printf do c facilita o nosso controle nesse assunto.

E lembre-se de identar (alinhar) o programa, crie este hábito desde logo pois será de utilidade quando os programas começarem a ficar sérios.

#include<stdio.h>
#include<math.h>
#define M_PI pi

int main(void){

double raio, area, renTinta, qtdTinta, qtdLata;
double arredonda_pcima = 0.0;

printf("\nQual o raio da mesa?(medida em metros)\n");
scanf("%f", &raio);
printf("\nQual o rendmento da tinta?(padrão 5m/l)\n");
scanf("%f", &renTinta);

area = pi * ( raio * raio );// pow(raio, 2.0)

qtdTinta = (area / renTinta);
qtdLata = (qtdTinta / 10.0);
arredonda_pcima = ceil(qtdLata);

printf("\npara uma mesa de raio %.2f e área de %.2f", raio, area);
printf(" será consumido %.2f de tinta e", qtdTinta);
printf(" será(ão) necessária(as) %.0f latas\n\n", arredonda_pcima );

return 0;
}


São apenas sugestões, cada um cria seus hábitos...

Abaixo no meu blog talvez encontre algo que lhe seja útil. Enfim, espero ter ajudado.

Ismael Damião
Instituto de Física - UFAL
ismaellxd@gmail.com
https://ismaeldamiao.blogspot.com/


5. Re: Problema ao compilar [RESOLVIDO]

gilmar ribeiro santana
gilmarribeiro

(usa Outra)

Enviado em 15/03/2020 - 09:06h

@IsmaelSantos

Obrigado mesmo por suas indicações de melhoria.
Como disse, sou iniciante.
Na faculdade começou agora a entrar em questões iniciais na linguagem C (variáveis, operações matemáticas básicas, comandos básicos, etc), mas eu estou já buscando coisas lá na frente e estou disposto a aprender a trabalhar da forma mais profissional e técnica possível. Com certeza vou adotar suas recomendações. Quanto à identação, ela estava feita, mas ao copiar o código para cá, não sei o motivo, ele não respeitou esse espaçamento. De qualquer forma, agradeço muito.


6. Re: Problema ao compilar [RESOLVIDO]

Paulo Jr
Pebis

(usa Debian)

Enviado em 15/03/2020 - 11:20h


gilmarribeiro escreveu:

@IsmaelSantos

Quanto à identação, ela estava feita, mas ao copiar o código para cá, não sei o motivo, ele não respeitou esse espaçamento. De qualquer forma, agradeço muito.


quando for colocar um código coloque entre as tags <code> </code>

Inclusive tem logo acima do espaço reservado para escrever as tags Bold Itálico Quote Código e Youtube






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts