winio94 Temat założony przez niniejszego użytkownika |
liczby calkowite warunek » 2014-05-06 11:47:45 Czesc,chcę aby program bral pod uwage tylko liczby calkowite Wymyslilem coś takiego: int ilosc; cout << "Podaj wielkosc tablicy(liczba calkowita!!): "; cin >> ilosc; while( ilosc % 2 != 1 || ilosc % 2 != 0 ) { cout << "Wielkosc musi byc liczba calkowita!!\nSprobuj ponownie." << endl; cin >> ilosc; } cout << "Poprawna liczba" << endl; Pytanie,co jest źle w tym warunku? Pozdrawiam Tutaj caly kod gdyby ktos chcial: http://ideone.com/g2GWcG |
|
stryku |
» 2014-05-06 11:54:41 |
|
winio94 Temat założony przez niniejszego użytkownika |
» 2014-05-06 12:05:20 dzięki, ale chciałbym jeszcze wiedziec dlaczego mój warunek nie działa poprawnie :) Odpowie ktoś na to pytanie ? |
|
Monika90 |
» 2014-05-06 12:12:50 ilosc jest typu int, to znaczy zawsze zawiera liczbę całkowitą (jeżeli tylko było poprawnie zainicjalizowane). Twój warunek jest prawdziwy dla dowolnej wartości typu int, równie dobrze mógłbyś napisać while (true) { } |
|
winio94 Temat założony przez niniejszego użytkownika |
» 2014-05-06 12:17:56 Dobrze, wklejam caly kod: Chodzi mi o wlasnie przypadek podania liczby innej niz calkowita; Chcę aby po podaniu np 4.5 pętla cofała mnie aż do momentu podania liczby calkowitej,a ona cofa mnie właśnie gdy podaje liczbe calkowitą(Wielkosc tablicy musi byc liczba calkowita), a pętelka cofa mnie gdy podam właśnie liczbe calkowitą #include <iostream> #include <conio.h> #include<string> #include<cstdlib> #include<time.h> using namespace std;
float srednia( float * tab, int ile ) { float suma = 0; for( int i = 0; i < ile; i++ ) { suma +=* tab; tab++; } return suma / ile; }
int main() { int ilosc; cout << "Podaj wielkosc tablicy(liczba calkowita!!): "; cin >> ilosc; while( ilosc % 2 != 1 || ilosc % 2 != 0 ) { cout << "Wielkosc musi byc liczba calkowita!!\nSprobuj ponownie." << endl; cin >> ilosc; } cout << "Poprawna liczba" << endl; float tablica[ ilosc ]; for( int i = 0; i < ilosc; i++ ) { cout << "Element: " << i << " = "; cin >> tablica[ i ]; } cout << srednia( tablica, ilosc ); getch(); return 0; } Pozdrawiam |
|
alixir |
» 2014-05-06 12:39:40 Chyba nie bardzo rozumiesz poprzednie wypowiedzi. Po 1. Zmienna "ilosc" jest typu int (przechowuje liczby calkowite), więc nie możesz nawet zapamiętać w niej innej liczby jak tylko całkowitą Po 2. Twój warunek jest zawsze prawidziwy (pętla wykona się niezależnie od tego co podasz) Załóżmy, że podałeś liczbę 4: while( 4 % 2 != 1 || 4 % 2 != 0 ) = while( 0 != 1 || 0 != 0 ) = while( true || false ) Prawda lub fałsz daje zawsze prawdę ! Myślę, że twoim zamysłem było && zamiast || |
|
winio94 Temat założony przez niniejszego użytkownika |
» 2014-05-06 12:46:50 alixir dzięki, zapomniałem o tym. W takim razie jak rozwiązać problem podania za wielkosc tablicy liczby np 4.5? edit. Sorry za glupie pytanie, jakie inaczej JA moglbym to zrobic?:) |
|
alixir |
» 2014-05-06 12:57:19 Zgodnie z tym co napisałem wcześniej, nie da się wczytać liczby 4.5 do zmiennej "ilosc". W przypadku podania takiej liczby, program wczyta do zmiennej wartość 4, a w buforze pozostawi ".5" |
|
« 1 » 2 |