• 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

Object Storage Arubacloud
0 głosów
511 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,490 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,490 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ź 318 wizyt
pytanie zadane 1 lipca 2019 w Rozwój zawodowy, nauka, praca przez gorgonkowa Obywatel (1,810 p.)
0 głosów
1 odpowiedź 298 wizyt
0 głosów
2 odpowiedzi 185 wizyt
pytanie zadane 12 grudnia 2015 w PHP przez MrTomek_ Użytkownik (570 p.)

92,568 zapytań

141,424 odpowiedzi

319,634 komentarzy

61,956 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...