frackowiakgfx 28 Października 2018 28 Października 2018 Uczę się C++ i pisałem teraz program który pyta się i ilosc miejsc po przecinku i zaokrągla liczbę pi. Mam problem z jego kompilacją bo otwiera się plik makefile.win i podświetla linijke: $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS) Kod jest taki: #include <iostream> #include <iomanip> #include <conio.h> #include <math.h> using namespace std; int main() { float przecinek; cout << "Program pokazuje wartosc liczby pi" << endl; cout << "Dokladnosc miejsc po przecinku (1-10)" << endl; cin >> przecinek; if (przecinek = 1) cout << "pi = " << fixed << setprecision(1) << M_PI << endl; if (przecinek = 2) cout << "pi = " << fixed << setprecision(2) << M_PI << endl; if (przecinek = 3) cout << "pi = " << fixed << setprecision(3) << M_PI << endl; if (przecinek = 4) cout << "pi = " << fixed << setprecision(4) << M_PI << endl; if (przecinek = 5) cout << "pi = " << fixed << setprecision(5) << M_PI << endl; if (przecinek = 6) cout << "pi = " << fixed << setprecision(6) << M_PI << endl; if (przecinek = 7) cout << "pi = " << fixed << setprecision(7) << M_PI << endl; if (przecinek = 8) cout << "pi = " << fixed << setprecision(8) << M_PI << endl; if (przecinek = 9) cout << "pi = " << fixed << setprecision(9) << M_PI << endl; if (przecinek = 10) cout << "pi = " << fixed << setprecision(10) << M_PI << endl; return 0; } Z góry dzięki za pomoc ☺️ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
-n3veR 28 Października 2018 28 Października 2018 Znak równości, to znak przypisania, nie porównania. I tutaj lepszym rozwiązaniem jest switch/case niż if/else Dodatkowo. Dlaczego zmienną 'przecinek' jest typu float? Skoro przyjmujesz tylko wartości typu int? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
frackowiakgfx 28 Października 2018 Autor 28 Października 2018 Godzinę temu, El Profesor napisał: Znak równości, to znak przypisania, nie porównania. I tutaj lepszym rozwiązaniem jest switch/case niż if/else Dodatkowo. Dlaczego zmienną 'przecinek' jest typu float? Skoro przyjmujesz tylko wartości typu int? Użyłem switch/case i zmieniłem na float. Nadal wyskakuje ten sam błąd. Może to być problem z kompilatorem? #include <iostream> #include <iomanip> #include <conio.h> #include <math.h> using namespace std; int main() { int przecinek; cout << "Program pokazuje wartosc liczby pi" << endl; cout << "Dokladnosc miejsc po przecinku (1-10)" << endl; cin >> przecinek; switch (przecinek) { case 1: cout << "pi = " << fixed << setprecision(1) << M_PI << endl; break; case 2: cout << "pi = " << fixed << setprecision(1) << M_PI << endl; break; case 3: cout << "pi = " << fixed << setprecision(1) << M_PI << endl; break; case 4: cout << "pi = " << fixed << setprecision(1) << M_PI << endl; break; case 5: cout << "pi = " << fixed << setprecision(1) << M_PI << endl; break; case 6: cout << "pi = " << fixed << setprecision(1) << M_PI << endl; break; case 7: cout << "pi = " << fixed << setprecision(1) << M_PI << endl; break; case 8: cout << "pi = " << fixed << setprecision(1) << M_PI << endl; break; case 9: cout << "pi = " << fixed << setprecision(1) << M_PI << endl; break; case 10: cout << "pi = " << fixed << setprecision(1) << M_PI << endl; break; } return 0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
-n3veR 28 Października 2018 28 Października 2018 To jest cała treść błędu co dostajesz? Wrzuiłem powyższy kod do kompilatora online. Wystarczy wywalić tą linijkę: #include <conio.h> Ale dlaczego, to Ci nie powiem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
frackowiakgfx 28 Października 2018 Autor 28 Października 2018 Otwiera się plik makefile i wyskakuje to: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mativve 28 Października 2018 Mativve jest moderatorem 28 Października 2018 Spróbuj utworzyć nowy plik - czasem mi to pomagało. Taki kod: Spoiler #include <iostream> #include <iomanip> #include <math.h> using namespace std; int main() { float przecinek; cout << "Program pokazuje wartosc liczby pi" << endl; cout << "Dokladnosc miejsc po przecinku (1-10)" << endl; cin >> przecinek; if (przecinek = 1) cout << "pi = " << fixed << setprecision(1) << M_PI << endl; if (przecinek = 2) cout << "pi = " << fixed << setprecision(2) << M_PI << endl; if (przecinek = 3) cout << "pi = " << fixed << setprecision(3) << M_PI << endl; if (przecinek = 4) cout << "pi = " << fixed << setprecision(4) << M_PI << endl; if (przecinek = 5) cout << "pi = " << fixed << setprecision(5) << M_PI << endl; if (przecinek = 6) cout << "pi = " << fixed << setprecision(6) << M_PI << endl; if (przecinek = 7) cout << "pi = " << fixed << setprecision(7) << M_PI << endl; if (przecinek = 8) cout << "pi = " << fixed << setprecision(8) << M_PI << endl; if (przecinek = 9) cout << "pi = " << fixed << setprecision(9) << M_PI << endl; if (przecinek = 10) cout << "pi = " << fixed << setprecision(10) << M_PI << endl; return 0; } Sprawdziłem za pomocą: C++ Shell i działa ☺️ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
-n3veR 28 Października 2018 28 Października 2018 Spoiler 3 minuty temu, Mativve napisał: Spróbuj utworzyć nowy plik - czasem mi to pomagało. Taki kod: Ukryj zawartość #include <iostream> #include <iomanip> #include <math.h> using namespace std; int main() { float przecinek; cout << "Program pokazuje wartosc liczby pi" << endl; cout << "Dokladnosc miejsc po przecinku (1-10)" << endl; cin >> przecinek; if (przecinek = 1) cout << "pi = " << fixed << setprecision(1) << M_PI << endl; if (przecinek = 2) cout << "pi = " << fixed << setprecision(2) << M_PI << endl; if (przecinek = 3) cout << "pi = " << fixed << setprecision(3) << M_PI << endl; if (przecinek = 4) cout << "pi = " << fixed << setprecision(4) << M_PI << endl; if (przecinek = 5) cout << "pi = " << fixed << setprecision(5) << M_PI << endl; if (przecinek = 6) cout << "pi = " << fixed << setprecision(6) << M_PI << endl; if (przecinek = 7) cout << "pi = " << fixed << setprecision(7) << M_PI << endl; if (przecinek = 8) cout << "pi = " << fixed << setprecision(8) << M_PI << endl; if (przecinek = 9) cout << "pi = " << fixed << setprecision(9) << M_PI << endl; if (przecinek = 10) cout << "pi = " << fixed << setprecision(10) << M_PI << endl; return 0; } Sprawdziłem za pomocą: C++ Shell i działa ☺️ Działa z przypisaniem, nie porównaniem? @FRACKOWIAK tak jak pisałem wyżej. Spróbuj usunąć bibliotekę conio.h Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
frackowiakgfx 28 Października 2018 Autor 28 Października 2018 @Mativve @El Profesor u mnie nie działa ani z przypisaniem ani z porównaniem.. kod Mativve też mi nie działa, zmieniłem = na == i też nie działa więc wina leży chyba po stronie kompilatora Dobra, na cpp.sh działa więc kod jest poprawny, dzięki za pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
-n3veR 28 Października 2018 28 Października 2018 A jakikolwiek inny program, nawet pusty tylko z main(), działa? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
frackowiakgfx 29 Października 2018 Autor 29 Października 2018 15 godzin temu, El Profesor napisał: A jakikolwiek inny program, nawet pusty tylko z main(), działa? sprawdziłem, nie działa żaden program Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
-n3veR 29 Października 2018 29 Października 2018 No to problem masz ze środowiskiem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kontynuuj dyskusję
Dołącz do Pecetowicza, aby kontynuować dyskusję w tym wątku.