Podgląd pojedynczego posta
Stary 28.11.2006, 17:37   #1
misiek767
Bywalec
 
Avatar użytkownika misiek767
 
Data rejestracji: 29.04.2004
Posty: 37
misiek767 w tym momencie nie ma Reputacji dodatnich ani ujemnych <0  pkt>
[c++] slowne wyswietlanie liczby

Witam mam do napisania program ktory wyswietla 3-cyfrowa liczbe naturalna slownie tak jak to jest na fakturach. ma to wygladac tak ze wprowadzam liczbe trzy cyfrowa do wpisania 0 napisalem cos takiego
#include <cstdlib>
#include <iostream>
#include <istream>
#include <conio.h>
using namespace std;

int main(int argc, char *argv[])
{
int tab[3]={0};
char z=1;
int i=0;

while(z!='0'){
if (i==3) break;
cout<<"Podaj liczbe (0 konczy) ";
z=getche();
cout<<endl;
if z>='1')&&(z<='9')){
tab[i]=z;
i++;}}
if (i==3){
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;
}i--;}
if (i==2){
switch (tab[1]){
case '1': switch(tab[2]){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-=2;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;}i--;}
if (i==1){
switch(tab[2]){
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 dla liczb trzy cyfrowych dziala ok ale jak bede chcial wpisac np 22 czyli po wpisaniu 2 i drugiego dwa wcisne zero to on wyswietlna ze jest to liczba dwadziescia. no i jest tak w analogicznych przypadkach. wie moze ktos gdzie tu jest blad. a moze ta metoda jest w ogole do bani z gory dzieki za pomoc
misiek767 jest offline   Odpowiedz cytując ten post

  #ads
CDRinfo.pl
Reklamowiec
 
 
 
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
 

CDRinfo.pl is online