Znowu mam problem, z tym samym programem. Trochę go rozbudowałem i coś mi znowu nie chodzi, chodził już dobrze tylko nie wiadomo dlaczego nie pisał komunikatu o błędzie, gdy wpisałem wiekszą cyfrę, a teraz zupełnie się posypał. Co zrobię to on tylko oblicza fahrenheity - celsjusze, nie wiem co tu znowu zmajstrowałem...
Aha najpierw zrobiłem to używając goto, potem próbowałem używając if, if else i else - ale też coś nie wyszło.
zamieszczam oba kody:
#include <stdio.h>int main (void){ // zmienne float fahr, cel, stopnie; int opcja; // Tytul printf ("|===============================================================|\n"); printf ("|Przelicznik stopni Fahrenheit - Celsjusz - Fahrenheit |\n"); printf ("|===============================================================|\n\n"); // Pytanie - co chcesz przeliczyc, lub czy chcesz zakonczyc program printf ("|===============================================================|\n"); printf ("|Chcesz przeliczyc stopnie z: |\n"); printf ("|===============================================================|\n"); printf ("||1| fahrenheita na celsjusza |\n"); printf ("||2| celsjusza na fahrenheita |\n"); printf ("||3| zakoncz program |\n"); printf ("|===============================================================|\n"); // Pobiaranie znaku opcji 1, 2, lub 3 scanf ("%i", &opcja); // Przypisywanie pobranej opcji // Opcje poprawne 1-3 // Jeżeli została wybrana opcja 1, fahrenheit - celsjusz if ( opcja = 1) goto fahren_cels; // Jeżeli została wybrana opcja 2, celsjusz - fahrenheit if ( opcja = 2 ) goto cels_fahren; // Jeżeli została wybrana opcja 2, celsjusz - fahrenheit if ( opcja = 3 ) goto koniec; // Błędy // Jeżeli cyfra jest różna od 1, 2, lub 3 if ( opcja > 3 || opcja < 1 ) goto zla_opcja; // Jeśli wybierzesz opcje nr. 1 fahren_cels: printf ("|===============================================================|\n"); printf ("|Wpisz ile stopni chcesz zamienic z fahrenheita na celsjusza |\n"); printf ("|===============================================================|\n"); // Pobieranie znaku - ilosc stopni scanf ("%f", &stopnie); cel = (stopnie - 32) / 1.8; // Algotytm przeliczania fahrenheit - celsjusz printf ("|===============================================================|\n"); printf ("|%.1f stopni Fahrenheita wynosi %.1f stopni Celsjusza |\n", stopnie, cel); printf ("|===============================================================|\n"); goto koniec; // Jeśli wybierzesz opcje nr. 2 cels_fahren: printf ("|===============================================================|\n"); printf ("|Wpisz ile stopni chcesz zamienic z celsjusza na fahrenheita |\n"); printf ("|===============================================================|\n"); // Pobieranie znaku - ilość stopni scanf ("%f", &stopnie); fahr = (stopnie + 32) * 1.8; // Algorytm przeliczania celsjusz - fahrenheit printf ("|===============================================================|\n"); printf ("|%.1f stopni Celsjusza wynosi %.1f stopni Fahrenheita |\n", stopnie, fahr); printf ("|===============================================================|\n"); // Jeśli wybrana opcja była błędna zla_opcja: printf ("|===============================================================|\n"); printf ("|Blad zle wybrana opcja, mozna wybrac tylko 1, 2, lub 3 |\n"); printf ("|===============================================================|\n"); koniec: // konczenie programu sleep(12000); // wstrzymanie pracy na określony czas return 0;}
drugi kod
#include <stdio.h>int main (void){ int opcja; float fahr, cel, stopnie; printf ("|===============================================================|\n"); printf ("|Przelicznik stopni Fahrenheit - Celsjusz - Fahrenheit |\n"); printf ("|===============================================================|\n\n"); printf ("|===============================================================|\n"); printf ("|Chcesz przeliczyc stopnie z: |\n"); printf ("|===============================================================|\n"); printf ("||1| fahrenheita na celsjusza |\n"); printf ("||2| celsjusza na fahrenheita |\n"); printf ("||3| zakoncz program |\n"); printf ("|===============================================================|\n"); scanf ("%i", &opcja); if ( opcja = 1 ) printf ("|===============================================================|\n"); printf ("|Wpisz ile stopni chcesz zamienic z fahrenheita na celsjusza |\n"); printf ("|===============================================================|\n"); scanf ("%f", &stopnie); cel = (stopnie - 32) / 1.8; printf ("|===============================================================|\n"); printf ("|%.1f stopni Fahrenheita wynosi %.1f stopni Celsjusza |\n", stopnie, cel); printf ("|===============================================================|\n"); else if ( opcja = 2 ) printf ("|===============================================================|\n"); printf ("|Wpisz ile stopni chcesz zamienic z celsjusza na fahrenheita |\n"); printf ("|===============================================================|\n"); scanf ("%f", &stopnie); fahr = (stopnie + 32) * 1.8; printf ("|===============================================================|\n"); printf ("|%.1f stopni Celsjusza wynosi %.1f stopni Fahrenheita |\n", stopnie, fahr); printf ("|===============================================================|\n"); else if ( opcja > 3 || opcja < 1 ) printf ("|===============================================================|\n"); printf ("|Blad zle wybrana opcja, mozna wybrac tylko 1, 2, lub 3 |\n"); printf ("|===============================================================|\n"); else ( opcja = 3 ) sleep(12000); return 0;}