[ mrmko @ 14.12.2005. 23:32 ] @
#include<iostream.h>
#include<conio.h>
struct cifra{
char broj;
cifra *sljedeci;
};
struct cifra *rep=NULL;
bool isEmpty();
void push (struct cifra *novi);
void pop();
struct cifra *inicvor(char c);
struct cifra *inicvor (char c){
struct cifra *pokcvor;
pokcvor=new cifra;
if (pokcvor==NULL)return NULL;
else {
pokcvor->broj=c;
return pokcvor;
}
}
void push(struct cifra *novi){
if (rep==NULL){
rep=novi;
rep->sljedeci=NULL;
}else{
novi->sljedeci=rep;
rep=novi;
}
}
void pop(){
struct cifra *tmp;
if (rep!=NULL){
cout<<rep->broj;
tmp=rep;
if(tmp->sljedeci==NULL)cout<<"\nkraj";
rep=tmp->sljedeci;
delete tmp;
}
else return;
}
bool isEmpty(){
if(rep==NULL)return true;
else return false;
}
int main(){
struct cifra *pok,*novi;
int kolicina,element;
char id;
cout<<"Unesite broj cifara broja\n";
cin>>kolicina;
cout<<"Unesite cifre broja\n";
for (int i=0;i<kolicina;i++){
cin>>id;
pok=inicvor(id);
push(pok);
}
cout<<"Naopachke broj je:\n";
while(!isEmpty()){
pop();
}
getch();
return 0;
}
Ovo je program koji ispisuje broj obrnutim redosledom,npr:unesemo:20145,a on ce da ispise:54102.
Meni bi trebao program koji ce ispisivati broj kao sto je unesen,npr:
2
3
4
5,a da on ispise:2345.Unapred HVALA.molim one koji znaju….i mogu da mi pomognu.
[ del-boy @ 14.12.2005. 23:53 ] @
Ne kontam šta tebi u stvari treba. Da ti unosiš cifre, a računar da ti vraća broj u tom redosledu?

Ako je to, to nije teško.
Ne mogu da ti napišem kod jer ne znam C++ (mogu u C - u ako hoćeš), ali logika ti je sledeća:

U jednu promenljivu pamtiš broj koji sortiraš. Na početku je nula. I onda kad god uneseš cifru prethodnu vrednost broja pomnošiš sa 10 i dodaš novu cifru.

primer
broj = 0
petlja
/*Unos cifre*/
broj = broj * 10 + cifra
kraj petlje

Petlja moze da se izvršava dok ne uneseš neko slovo, ili da unapred znaš koliko cifara imaš!

Ako ti nešto znači kod u C-u kaži, napisaću ti!
[ del-boy @ 14.12.2005. 23:56 ] @
E da, sad sam se setio. Da li tebi taj broj treba samo da ga ispišeš ili i da ga koristiš u programu za računanje. Pretpostavio sam ovo drugo jer je mnogo logičnije. A ako hoćeš ovo prvo samo ispiši brojeve zaredom i to je to...
[ mrmko @ 15.12.2005. 00:50 ] @
ma pogledaj onaj gore kod...tako nesto mi treba,ali ne da ispisuje broj obrnutim redosljedom,vec isti kao sto sam unio...treba mi slican kod onom navedenom..
[ del-boy @ 15.12.2005. 01:52 ] @
Ne razumem i dalje!
Kažem ti ja ne znam C++, ali u C-u znam ovo da ti uradim, samo kad bi mi rekao tačno šta hoćeš. Koliko mogu da protumačim u ovog gore kodu tebi treba ovo (u C-u, naravno):

Code:

#include <stdio.h>
main () {
    int i, n, k=0, c;
    printf("Broj cifara: ");
    scanf("%d", &n);
    printf("Cifre: ");
    for (i=0; i<n; i++) {
        scanf("%d", &c);
        k *= 10;
        k += c;
        }
    printf("Broj je: %d\n\n", k);
return 0;
}


Ovde ukucavaš cifre i kada završiš taj broj ti se ispiše na ekranu u redosledu u kom si uneo cifre!

Možda je ne kontam šta tebi treba, pa sačekaj nekog drugog, možda može bolje da ti pomogne!
[ NrmMyth @ 15.12.2005. 19:14 ] @
.... pretjerujete...
Unsei kao string i obrni ga, mozes i koristiti std::reverse(). Kasnije radi sto hoces s tim, mozes vratiti i u int sa atol() ili drugim funcijama ili nacinima.
Poz.