• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

chharlie

doubles

10 mensagens neste tópico

venho aqui expor mais um duvida bastante futil mas como eu gosto de saber o porque das coisas nao funcionarem como eu quero venho aqui ver se algume me esclarece.

quando declaro um a variavel como sendo double o conpilador da-me erro e nao sei porque.

imaginemos declaro qualquer coisa do tipo

double abc = 30.0;

ele da erro mas se declarar a mesma variavek como sendo um float ja nao da erro nenhum

o meu compilador é o gcc e programo em ambiente unix

obrigado desde ja por qualquer esclarecimento

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho isso muito estranho... Olha aqui:

bash-3.2$ cat doubles.c

#include <stdlib.h>

int main() {

  double abc = 30.0;

}

bash-3.2$ gcc doubles.c

bash-3.2$ gcc -W doubles.c

Sem qualquer problema... :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ta aqui o programa, afinal nao da erro mas sim warning mas queria saber porque do warning visto que no livro que li do luis damas "linguagem c" diz que um double pode ser lido por um %f tal como um float

#include<stdio.h>

int main(){

double quilos=1.0e3;
double gramas= 1.0e6;
double toneladas;

printf("Insira o numero de toneladas: ");
scanf("%f",&toneladas);
printf("o numero de toneladas inseridas e %f quilos\n",toneladas*quilos); 
printf("o numero de toneladas inseridas e %f gramas\n",toneladas*gramas);
return 1;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

poder até pode vai é haver uma conversão de float para double.

Mais correcto seria usares %lf

De qualquer forma pudias era por ai o warning, até porque pode não ser nada relacionado.

Postar os warnings/erros ajuda sempre  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Será do return 1 no fim da main? (Deveria ser return 0).

Isso é apenas uma convenção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado pela ajuda mesmo, usei o %lf e funcionou direitinho, no livro que ando a ler diz que o %f serve perfeitamente e andei a pesquisar pela net mas nunca tinha encontrado a soluçao %lf.

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora