• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sprawdzanie czy liczba dzielona to 0

0 głosów
1,250 wizyt
pytanie zadane 17 kwietnia 2016 w C i C++ przez Azholi Początkujący (260 p.)

Witam,

Mam problem dotyczący sprawdzania czy 2 wpisana liczba 'dzielona' jest 0. Jeśli jest to ma się nie wykonać a jeśli else to się wykonuje. 

case 4:
{
	cout << tr ("Podaj liczbę 1: ");
	cin >> liczba[0];
	cout << tr ("Podaj liczbę 2: ");
	cin >> liczba[1];
	if(liczba[1]==0)
	{
		cout << "Nie dzielimy przez zero!";
		break;
	}
	cout << "Wynik dzielenia: " << liczba[0]/liczba[1];
	break;
}

Chodzi o to, że jeśli wpiszemy liczba[1] jako 0 to wyświetla się if ale jeśli zaś liczba jest normalną, podzielną to wynik równa się NULL '0'.

cout nie czyta tekstu wpisanego w cin po if'ie?

5 odpowiedzi

+1 głos
odpowiedź 17 kwietnia 2016 przez Artur Wraga Obywatel (1,870 p.)

Wydaje mi się ,że powinieneś dać po if {} jeszcze else

komentarz 17 kwietnia 2016 przez Azholi Początkujący (260 p.)
Niestety, próbowałem to już przed napisaniem tematu.
0 głosów
odpowiedź 17 kwietnia 2016 przez Marcin Soczówka Użytkownik (590 p.)
Co to jest tr?  Programowania uczę się od niedawna ale jak dla mnie  linijka cout << tr ("Podaj liczbę 1: "); powinna wyglądać  cout << tr <<"Podaj liczbę 1: ";.

Druga sprawa jaki jest typ zmiennych w tablicy?
komentarz 17 kwietnia 2016 przez Damian11131 Stary wyjadacz (13,470 p.)
Obejrzyj sobie odcinek o C++ (numer 15 jak dobrze pamiętam). Funkcja tr pozwala używać polskich znaków w konsoli, jednak jest nieprzenośna pomiędzy systemami operacyjnymi.
komentarz 18 kwietnia 2016 przez Marcin Soczówka Użytkownik (590 p.)
Ok, wielkie dzięki za info:)
0 głosów
odpowiedź 17 kwietnia 2016 przez Niespecjalny Gaduła (4,180 p.)
Nie widzę problemu w tym fragmencie ale co robi to "tr("xxx")"
komentarz 17 kwietnia 2016 przez Damian11131 Stary wyjadacz (13,470 p.)
Odpowiedź wyżej.
komentarz 17 kwietnia 2016 przez Niespecjalny Gaduła (4,180 p.)
wstaw kod na ideone i podeślij linka
komentarz 17 kwietnia 2016 przez Azholi Początkujący (260 p.)
char *tr(char *str)
{
    static char buff[256];
    char cp[]="\245\206\251\210\344\242\230\276\253\244\217\250\235\343\340\227\275\215ąćęłńóśżźĄĆĘŁŃÓŚŻŹ";
    if(strlen(str)>=sizeof(buff)) return str;
    char *bf=buff;
    while(*str)
    {
        char *pos=strchr(cp+18,*str);
        *(bf++)=pos?*(pos-18):*str;
        ++str;
    }
    *bf=0;
    return buff;
}

Pewnie chodzi o to, kodowanie polskich znaków. Ale to wszystko działa, nie ma z tym problemu. Tylko chodzi o to, że jeśli pod liczba[1] przypiszemy 2 wpisywaną liczbę 'Podaj liczbę 2:' jeśli w/w liczba jest zerem '0' to wykonuje się if że nie można dzielić przez '0'. Czyli tak jak zamierzałem. A jeśli zaś liczba wpisywana 'liczba[1]' NIE JEST zerem, tylko każdą inną liczbą '1,2,3,4,5[...]' to zamiast wyniku wyświetla się '0'. Myślę że jasno wytłumaczyłem i prosiłbym o pomoc.

 

Co do typu zmiennych tablic. Dopiero od 2 dni programuję w tym języku, po prostu wykorzystuję coś takiego 'int liczba[4];' jeśli to nie to, to przepraszam.

komentarz 17 kwietnia 2016 przez Azholi Początkujący (260 p.)
komentarz 17 kwietnia 2016 przez Niespecjalny Gaduła (4,180 p.)
Chciałem abyś dał cały kod pod ideone bo chcę sprawdzić w czym problem :/

To tak jakbyś chciał oceny smaku ciasta dając mi wisienkę.
komentarz 18 kwietnia 2016 przez Artur Wraga Obywatel (1,870 p.)
a jakiego typu są te dwie liczby ? jak podasz np : pierwsza liczba 8 a druga liczba 4 to tez pokazuje 0 ?
0 głosów
odpowiedź 17 kwietnia 2016 przez Azholi Początkujący (260 p.)

W sumie trochę nie przemyślanie to zrobiłem. Zapewne wystarczy zrobić zmienną float, jeszcze nie sprawdzałem.

0 głosów
odpowiedź 18 kwietnia 2016 przez Kacper Sas Dyskutant (8,460 p.)

Według mnie kod powinien wyglądać tak:

case 4:
{
    cout << tr("Podaj liczbę 1: ");
    cin >> liczba[0];
    cout << tr("Podaj liczbę 2: ");
    cin >> liczba[1];
    cout << endl << endl;

    if(liczba[0] != 0) {
        cout << "Wynik dzielenia wynosi: " << liczba[0] / liczba[1];
    } else {
        cout << "Nie dzielimy przez zero !";
    }

    break;

}

U mnie odpalam - działa ;)

Ewentualnie posprawdzaj jeszcze czy deklarację zmiennych są poprawne :)

Podobne pytania

0 głosów
1 odpowiedź 728 wizyt
pytanie zadane 1 lipca 2019 w Rozwój zawodowy, nauka, praca przez gorgonkowa Obywatel (1,810 p.)
0 głosów
1 odpowiedź 622 wizyt
0 głosów
2 odpowiedzi 400 wizyt
pytanie zadane 12 grudnia 2015 w PHP przez MrTomek_ Użytkownik (570 p.)

93,757 zapytań

142,716 odpowiedzi

323,363 komentarzy

63,353 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...