Awit Opublikowano 25 Października 2008 Zgłoś Opublikowano 25 Października 2008 (edytowane) Mam pytanie jak do tablicy znaków np. unsigned int tablica[30] Wpisać ciąg 30 znaków Ma to wyglądać tak: Podaj liczbę: 223345634563456356787657651111 (liczba podana przez uzytkownika) i za pomocą czego wpisać tą liczbe do tablicy? Druga sprawa co zrobić by program pobierał tylko cyfry(przy literach informował o nieprawidłowości). Oraz był w stanie poinformować o za małej/ za dużej liczbie cyfr. #include<..>using namespace std;int main(){ int tablica[30]cout<<"Podaj liczbę: ";//i nie stety nie wiem co zrobić by pobrał całą 30 cyfrową liczbę... a pobieranie w takim stylu po jednej cyfrze odpada...for(int i=0, i < 30; i++){ cout>> tablica[i];suma += tablica[i];} Edytowane 25 Października 2008 przez Awit Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
-=YoGi=- Opublikowano 25 Października 2008 Zgłoś Opublikowano 25 Października 2008 isdigit(char ch) //Zwraca 1 gdy znak ch jest cyfrą wpisywac mozesz cin >> tablica Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Awit Opublikowano 25 Października 2008 Zgłoś Opublikowano 25 Października 2008 Ok poradziłem sobie z tym... teraz jeszcze pytanie... Czy możliwe jest aby _getch pobierał tylko na wpisywane cyfry? Co oznacza żeby miał reagować tylko na znaki ASCII od 48 do 57 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
chedder Opublikowano 25 Października 2008 Zgłoś Opublikowano 25 Października 2008 Ok poradziłem sobie z tym... teraz jeszcze pytanie... Czy możliwe jest aby _getch pobierał tylko na wpisywane cyfry? Co oznacza żeby miał reagować tylko na znaki ASCII od 48 do 57 spojrz na tablice ASCII : http://pl.wikipedia.org/wiki/Ascii tzn ma reagowac jedynie na cyfry :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Awit Opublikowano 26 Października 2008 Zgłoś Opublikowano 26 Października 2008 No tak.... ale jak to zrobić? ;) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 27 Października 2008 Zgłoś Opublikowano 27 Października 2008 ale co znaczy miałby reagować... To Ty jesteś programistą, więc to Twój program powinien reagować na to na co ma reagować... Więc getch niech zwraca co mu bufor klawiatury prawowicie daje, a Twój program powinien na litery zareagować w jedne sposób, na cyfry w inny. Słyszał kiedyś o pętlach i instrukcjach warunkowych, coś takiego jak do, while, if else ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
shooter Opublikowano 28 Października 2008 Zgłoś Opublikowano 28 Października 2008 Pelzak, mniej ironii proszę. Każdy kiedyś zaczynał :P Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 28 Października 2008 Zgłoś Opublikowano 28 Października 2008 (edytowane) staram się zmusić do myślenia podpowiadając hasła. Nie ma nic gorszego jak programista piszący kod BO_TAK_TRZEBA, który nie wie dlaczego tak trzeba :). Jeśli autor nie wie nadal jak to zrobić, proponuję narysować sobie algorytm na kartce... 1. pobieranie znaku (getch) 2. jeśli znak nie jest cyfrą (isdigit), wróć do 1 (if, while, o goto nie wspominam bo nie wypada) 3. w przeciwnym razie (else) wykonaj odpowiednią część kodu żeby nie było, że wujek zły i cukierka nawet nie da Edytowane 28 Października 2008 przez PelzaK Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
-=YoGi=- Opublikowano 2 Listopada 2008 Zgłoś Opublikowano 2 Listopada 2008 staram się zmusić do myślenia podpowiadając hasła. Nie ma nic gorszego jak programista piszący kod BO_TAK_TRZEBA, który nie wie dlaczego tak trzeba :). Jeśli autor nie wie nadal jak to zrobić, proponuję narysować sobie algorytm na kartce... 1. pobieranie znaku (getch) 2. jeśli znak nie jest cyfrą (isdigit), wróć do 1 (if, while, o goto nie wspominam bo nie wypada) 3. w przeciwnym razie (else) wykonaj odpowiednią część kodu żeby nie było, że wujek zły i cukierka nawet nie da goto sie nie uzywa :P Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
shooter Opublikowano 2 Listopada 2008 Zgłoś Opublikowano 2 Listopada 2008 tia, tak mawiaja Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 3 Listopada 2008 Zgłoś Opublikowano 3 Listopada 2008 a co ja napisałem.. nie wspominam, bo NIE WYPADA... w vision express maja podobno, dobre okulary :wink: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Bartoleon Opublikowano 4 Listopada 2008 Zgłoś Opublikowano 4 Listopada 2008 Twój post skłonił mnie do tego,że postanowiłem napisać algorytm zamieniający wprowadzoną wartość typu liczbowego(nie łańcuch znakowy) na tablice wartości liczbowych będacych cyframi tej liczby :) . Zaletą tego jest min to,że nie musisz z góry deklarować rozmiaru tablicy. Jeśli cię to interesuje to wygląda to tak - int l; cout<<"podaj liczbe"<<"\n"; cin>>l; int d=l; int p=1; while(d=d/10) //tyle razy ile dzieli się przez 10 z częścią całkowitą w wyniku dzielenia // stanowi wartość wykładnika maksymalnych liczb będących potęgą dziesiątki // mieszczących się w tej liczbie tym samym wiemy na ilu pozycjach miesci sie //podana liczba należy jeszcze tylko dodac do tego 1 aby uwzględnić również //ostatnią pozycje jedności p++; int t[p]; //znamy już liczbe pozycji więc tworzymy tablice o takim rozmiarze int k=p-1; do { d=l%10; //odkładamy odpowiednie wartości na odpowiednich pozycjach,począwszy od ostatniej t[k]=d; //czyli pozycji jedności kończąc na pozycji drugiej od początku k--; l=l/10; } while (l>=10) //gdy warynek niespełniony to l zawiera cyfre pierwszej pozycji ; t[k]=l; //którą teraz zapisujemy w pierwszym elemencie tablicy for(int i=0;i<p;i++) //ta część zby sprawdzić że algorytm działą dobrze cout<<t; cin.get(); getchar(); Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...