![]() |
||
Nagrywarki |
Pliki |
Dyski twarde |
Recenzje |
Księgarnia |
Biosy |
Artykuły |
Nagrywanie od A do Z |
Słownik |
FAQ
|
||
|
Off topic Forum poświęcone wszelkim innym tematom. |
![]() |
|
Opcje związane z dyskusją | Tryby wyświetlania |
|
![]() |
#1 |
Bywalec
Data rejestracji: 29.04.2004
Posty: 37
![]() |
[c++] problem z petla
Mialem napisac program ktory wyswietla liczby slownie a przy wprowadzeniu cyfry 0 ma zakonczyc dzialanie Ten program wyglada u mnie tak
#include <cstdlib> #include <iostream> #include <istream> #include <conio.h> using namespace std; int main(int argc, char *argv[]) { int tab[3]={0}; int i; char z; while ![]() cout<<"Podaj liczbe (zero konczy) "; cout<<endl; cout<<"wprowadziles "<<endl; int z=0; int i=0; while ![]() z=getche(); if ![]() tab[i]=z; i++;}} if (i==3){cout<<endl; switch (tab[0]){ case '1':cout<<"sto ";break; case '2':cout<<"dwiescie ";break; case '3':cout<<"trzysta ";break; case '4':cout<<"czterysta ";break; case '5':cout<<"piecset ";break; case '6':cout<<"szescset ";break; case '7':cout<<"siedemset ";break; case '8':cout<<"osiemset ";break; case '9':cout<<"dziewiecset ";break; }} if (i>=2){ switch (tab[i-2]){ case '1': switch(tab[i-1]){ case '0':cout<<"dziesiec"; break; case '1':cout<<"jedenascie";break; case '2':cout<<"dwanascie";break; case '3':cout<<"trzynascie";break; case '4':cout<<"czternascie";break; case '5':cout<<"pietnascie";break; case '6':cout<<"szesnascie";break; case '7':cout<<"siedemnascie";break; case '8' : cout<<"osiemnascie";break; case '9':cout<<"dziewietnascie";break;}i-=3;break; case '2': cout<<"dwadziescia ";break; case '3': cout<<"trzydziesci ";break; case '4': cout<<"czterdziesci ";break; case '5': cout<<"piecdziesiat ";break; case '6': cout<<"szescdziesiat ";break; case '7': cout<<"siedemdziesiat ";break; case '8': cout<<"osiemdziesiat "; break; case '9': cout<<"dziewiecdziesiat ";break;}} if (i>=1){ switch(tab[i-1]){ case '1':cout<<"jeden ";break; case '2':cout<<"dwa ";break; case '3':cout<<"trzy ";break; case '4':cout<<"cztery ";break; case '5':cout<<"piec ";break; case '6':cout<<"szesc ";break; case '7':cout<<"siedem ";break; case '8':cout<<"osiem ";break; case '9':cout<<"dziewiec ";break;}} cout<<endl;} system("PAUSE"); return EXIT_SUCCESS; } No i powtarza jak mu wpisuje liczby ale jak mu wpisze zero i enter to i tak dalej powtarza zamiast przerwac gdzie jest blad |
![]() |
![]() |
#ads | |
CDRinfo.pl
Reklamowiec
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
|
|
![]() |
![]() |
#2 |
...niepoprawny marzyciel.
Data rejestracji: 25.06.2002
Lokalizacja: Poznań
Posty: 4,752
![]() |
Nie mam kompilatora, ale kiedy***347; te***380; pisa***322;em taki program, ja rozwi***261;za***322;em to tak (nie wiem czy z tym pobraniem znaku b***281;dzie ok)
Kod:
#include <cstdlib> #include <iostream> #include <conio.h> using namespace std; string jednosci[10] = {"", " jeden", " dwa", " trzy", " cztery", " piec", " szesc", " siedem", " osiem", " dziewiec"}; string nastki[10] = {" dziesiec", " jedenascie", " dwanascie", " trzynascie", " czternascie", " pietnascie", " szesnascie", " siedemnascie", " osiemnascie", " dziewietnascie"}; string dziesiatki[10] ={"", "", " dwadziescia", " trzydziesci", " czterdziesci", " piecdziesiat", " szescdziesiat", " siedemdziesiat", " osiemdziesiat", " dziewiecdziesiat"}; string setki[10] = {"", " sto", " dwiescie", " trzysta", " czterysta", " piecset", " szescset", " siedemset", " osiemset", " dziewiecset"}; string wielkosci[6] = {"", " tys.", " mln.", " mld.", " bln.", " bld."}; int main(int argc, char *argv[]) { long int liczba; int reszta, rzad, i; string slowa; cout << "Podaj liczbe ktora chcesz zamienic na slowa " << endl; cin >> liczba; i = 1; rzad = 0; if (liczba <0) { slowa = slowa + " minus"; liczba = abs(liczba); } if (liczba ==0) slowa = slowa + " zero"; while (liczba > 0) { reszta = liczba % 10; liczba = liczba / 10; if ( i == 1 ) slowa = wielkosci[rzad] + slowa; if ( i==3 ) { slowa = setki[reszta] + slowa; i = 0; rzad++; } if ( i==2 ) slowa = dziesiatki[reszta] + slowa; if ( i == 1 && liczba % 10 != 1) slowa = jednosci[reszta] + slowa; if ( i == 1 && liczba % 10 == 1) { slowa = nastki[reszta] + slowa; liczba = liczba / 10; i++; } i++; } char znak; do { cout << slowa; cout << endl << endl; system("PAUSE"); return EXIT_SUCCESS;} while ((znak=getch() ) !='0'); return 0; }
__________________
Pozdrawiam! ![]() |
![]() |
![]() |
![]() |
|
|