aurel Opublikowano 28 Lutego 2007 Zgłoś Opublikowano 28 Lutego 2007 (edytowane) #include <stdio.h>#include <stdlib.h>#define PI 3.141592654;int main(int argc, char *argv[]){ double d, r, pole; scanf("%f",&r); scanf("%f",&d); pole=((r*r)-((d*d)/4))*PI; printf("%.2f\n",pole); system("PAUSE"); return 0;} Program w ogóle nie działa. Nie zczytuje nawet zmiennych. Jeśli typ danych zmienie na float - działa bez problemu :/ Identyczny program (z double) tyle że korzystający z cin i cout też działa bez problemu... Ktoś wie gdzie może być błąd...? /i żeby nie było głupich pytań - program MUSI być zrobiony na double. //ok, juz mam :) powinno byc: scanf("%lf",&r); Edytowane 28 Lutego 2007 przez aurel Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Ragnor Opublikowano 28 Lutego 2007 Zgłoś Opublikowano 28 Lutego 2007 Masz jeszcze mały błąd w programie, tutaj: #define PI 3.141592654;na końcu nie powinno być średnika. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 1 Marca 2007 Zgłoś Opublikowano 1 Marca 2007 pomijajac fakt iż nie zaleca sie stosownia defajna :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
dobo90 Opublikowano 1 Marca 2007 Zgłoś Opublikowano 1 Marca 2007 pomijajac fakt iż nie zaleca sie stosownia defajna :)A to od kiedy? oO Moglbys to wyjasnic? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 2 Marca 2007 Zgłoś Opublikowano 2 Marca 2007 od zawsze? :) #define to nie jest część C++, to jest polecenie preprocesora. Dlatego też możesz sobei zdefiniować makro, któe bedzie niepoprawne w C++, bo dla preprocesora wszystko jedno co tam podasz... Drugie niebezpieczeństwo jest zwiazane z typami danych, gdyż zapis: #define STALA 34 definiuje jedynie tekst 34, który będzie wstawiony w kod w miejscu gdzie wystąpi słówko STALA. A powiedz mi waćpan teraz jakiego typu jest ta STALA? :) wszak, może być: #define STALA 34 #define STALA 34L #define STALA _T("34") #define STALA L"34" #define STALA 34f #define STALA 34.0f gdzie potem wykorzystując w programie wartosć STALA kompilator źle zrzutuje typy i prawnie niewykrywalny błąd gotowy :) O wiele lepiej jest zastosować c++owe metody definiowania stałych, np: const int STALA = 34; const long STALA = 34; LPCTSTR STALA = _T("34"); // typy mfc-owe LPCWSTR STALA = L"34"; const float STALA = 34.0f; Jeśli zatem ktoś stosuje #define powinien być świadom niebezpieczeńst jakie to za sobą ciągnie. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Ragnor Opublikowano 4 Marca 2007 Zgłoś Opublikowano 4 Marca 2007 pomijajac fakt iż nie zaleca sie stosownia defajna :)Patrząc na zaprezentowany kod (m.in to co jest w #include oraz zastosowane instrukcje) to według mnie jest to kod w ANSI C, a nie w C++, a jak pamięć mnie nie myli w ANIS C nie ma const, więc jedynym wyjściem jest define. Chociaż jak oczywiście wspomniałeś ma on swoje wady, gdyż jest on rozwijany na poziomie preprocesora. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
aurel Opublikowano 12 Marca 2007 Zgłoś Opublikowano 12 Marca 2007 dokładnie tak jak Ragnor stwierdził - program był pisany w C i co lepsze - nie miał prawa korzystać z żadnych komend z C++. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
aurel Opublikowano 13 Marca 2007 Zgłoś Opublikowano 13 Marca 2007 Kolejne pytanie mam - co powinnam wpisać w scanfie jeśli chce wczytać zmienną typu unsigned long long int...? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MacOSek Opublikowano 14 Marca 2007 Zgłoś Opublikowano 14 Marca 2007 Kolejne pytanie mam - co powinnam wpisać w scanfie jeśli chce wczytać zmienną typu unsigned long long int...? %llu ale w Dev-C++ %I64u Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
igomako Opublikowano 14 Marca 2007 Zgłoś Opublikowano 14 Marca 2007 (edytowane) hum... nie działa. znaczy program wogle to się wieszać zaczyna. /to napisal aurel, zapomnial sie przelogowac. Edytowane 14 Marca 2007 przez igomako Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MacOSek Opublikowano 14 Marca 2007 Zgłoś Opublikowano 14 Marca 2007 hum... nie działa. znaczy program wogle to się wieszać zaczyna. /to napisal aurel, zapomnial sie przelogowac. jaki kompilator? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
aurel Opublikowano 14 Marca 2007 Zgłoś Opublikowano 14 Marca 2007 (edytowane) gcc wyglada na to ze dziala jak sie zrobi %lld... //edit - sprawdzilam jeszcze raz - jednak %llu dziala i to pod dev-c++ oO ale okazuje sie ze problem w programie lezy chyba gdzie indziej... Edytowane 14 Marca 2007 przez aurel Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...