![]() |
||
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 tab[0]+tab[i-1]+tab[i-2])!=0){cout<<"Podaj liczbe (zero konczy) "; cout<<endl; cout<<"wprowadziles "<<endl; int z=0; int i=0; while z!=13)&&(i!=3)){z=getche(); if z>='0')&&(z<='9')){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!
|
|
|
|
![]() |
|
|