Powrót   Forum CDRinfo.pl > Różne > Off topic

Off topic Forum poświęcone wszelkim innym tematom.



Witaj Nieznajomy! Zaloguj się lub Zarejestruj

Zarejestrowani użytkownicy mają dostęp do dodatkowych opcji, lepszej wyszukiwarki oraz mniejszej ilości reklam. Rejestracja jest całkowicie darmowa!

Odpowiedz na post
 
Opcje związane z dyskusją Tryby wyświetlania
Stary 06.12.2006, 19: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++] 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;
whiletab[0]+tab[i-1]+tab[i-2])!=0){
cout<<"Podaj liczbe (zero konczy) ";
cout<<endl;
cout<<"wprowadziles "<<endl;
int z=0;
int i=0;
whilez!=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
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  
Stary 07.12.2006, 15:34   #2
Kasprzak
...niepoprawny marzyciel.
 
Avatar użytkownika Kasprzak
 
Data rejestracji: 25.06.2002
Lokalizacja: Poznań
Posty: 4,752
Kasprzak zaczyna zdobywać reputację <1 - 49 pkt>
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!
Kasprzak jest offline   Odpowiedz cytując ten post
Odpowiedz na post


Twoje uprawnienia:
Nie możesz rozpoczynać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz umieszczać załączników
Nie możesz edytować swoich postów

BB codeWłączone
EmotikonkiWłączone
Kody [IMG]Włączone
Kody HTML są Wyłączone

Teleport


Wszystkie czasy w strefie CET. Aktualna godzina: 01:01.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.