Błąd przy wyświetlaniu long double.

0

Witam.
Przy tym programie, wynik jaki mi sie wyswietla to 0.000000.
Chciałbym aby był wyświetlany wynik, czy ktoś ma jakiś pomysł co robię nie tak?

 #include <stdio.h>
#define PI 3.1415926535897932

main(){

 puts("Obliczanie objetosci walca");

 long double promien = 6.6845;
 long double wysokosc = 15.4576;
 long double objetosc;
 
     objetosc = PI * promien * promien * wysokosc;
     
     printf("\nObjetosc walca = %lf",objetosc);
     
 return(0);
}
2

Nie czytasz dokumentacji. %lf to format dla double, %Lf jest dla long double.

Btw, main() musi mieć zadeklarowany zwracany typ.

0

Pomyliłem się, wcześniej było %Lf, przy testowaniu pozmieniałem i źle skopiowałem, ale przy %Lf też wyświetla ten sam wynik.

EDIT.
Teraz wygląda tak i nadal 0.000000

 
#include <stdio.h>
#define PI 3.1415926535897932

int main(int argc, char *argv[]){

 puts("Obliczanie objetosci walca");

 long double promien = 6.6845;
 long double wysokosc = 15.4576;
 long double objetosc;
 
     objetosc = PI * promien * promien * wysokosc;
     
     printf("\nObjetosc walca = %Lf",objetosc);
     
 return 0;
}
0

Uzywam DEV C++ i u mnie wygląda to tak. Całe oprogramowanie jest aktualne więc gdzie może być błąd?

user image

0

Zmień wydrukowany tekst by upewnić się, że na pewno uruchamiasz nową wersję, a nie jakąś starą.
Na 100% uruchamiasz ciągle starą wersję, bu u nas wszytko działa.

3

http://stackoverflow.com/questions/26296058/cant-print-correctly-a-long-double-in-c
Kompiluj z -D__USE_MINGW_ANSI_STDIO
albo dopisz do programu

#define printf __mingw_printf

1 użytkowników online, w tym zalogowanych: 0, gości: 1