Jump to content
Forum Roportal
strycnine

stiva

Rate this topic

Recommended Posts

#include<stdio.h>

 

typedef st[20];

st a;

char ch;

sort int nr,i;

char c[20];

 

 

main()

{

nr=-1;

printf("Introduceti elementele stivei\n");

while(ch!=10 && ch!=13 && ch<19)

{

nr++;

a[nr]=ch;

ch=getchar();

}

for(i=nr;i>=0;i--)

c[nr-i]=a;

printf("Stiva rezultat este:");

for(i=nr;i>=0;i--)

printf("%c",c);

puts("");

}

 

am facut aceasta stiva eu vreau ca rezultatul sa apara invers

adica 123 rez:321

dar nu stiu de ce dar nu imi da nimic

daca aveti materiale despre stive,coada sau lista va rog sa-mi dati si mie

Share this post


Link to post
Share on other sites

#include<stdio.h>

#include <iostream.h>

 

 

typedef st[20];

st a;

int nr,i,n,aux;

void main(void)

{

 

cout << "Introduceti nr de elemente al stivei>";

 

cin >> n;

 

 

for(i=1;i<=n;i++)

{

cout << "Numar>";

 

cin >> a;

}

 

for(i=1;i<=n-1;i++)

{

aux=a;

a=a[n-i+1];

a[n-i+1]=aux;

 

}

for(i=1;i<=n;i++)

cout << a;

}

 

 

 

rezultat:

 

Introduceti nr de elemente al stivei>3

Numar>1

Numar>2

Numar>3

321Press any caey to continue

 

 

:)"

Share this post


Link to post
Share on other sites

dar nu poti sa-la faci in asa fel incat sa fie in C si sa foloseasca functia getchar

sau zi-mi ce nu am facut eu bine

programul e in linux

Share this post


Link to post
Share on other sites

pai tu ai zis " am facut aceasta stiva eu vreau ca rezultatul sa apara invers

adica 123 rez:321 "

programul care ti-i la-am facut, asta face

eu n-am inteles mai nimic la tine

 

ce-i cu

char ch;

char c[20];

while(ch!=10 && ch!=13 && ch<19) // ..... ce-sa cu astea? sau ce-ai vrut sa faci?

 

stiva e ca si un sir de numere, doar ca are o regula: primul intrat e ultimul iesit

 

unde ai citit stiva?

unde ai declarat cate elemente sa fie in stiva?

 

uite si exemplificarea programului meu:

 

#include<stdio.h>

#include <iostream.h>

 

 

typedef st[20];

st a;

int nr,i,n,aux; //n-nr de elemte din stiva, i-contor;aux-variabila auxiliara

void main(void)

{

 

cout << "Introduceti nr de elemente al stivei>";

 

cin >> n; // cate elemente sa aibe stiva

 

 

for(i=1;i<=n;i++) //introduci elemtele din stiva

{ //daca ai zis ca stiva e de 3 elemente

cout << "Numar>"; //introduci elemtele ca la un vector a[1],a[2],a[3]

//adica pentru n=3,prima intrare in ciclu a[1], a doua intrare in

cin >> a; //ciclu a[1+1] (i++) si tot asa

}

 

for(i=1;i<=n-1;i++) //apoi pentru fiecare elemnt din stiva,de la primul pana la penultimul,

{ //facem asa: luam

aux=a; //var auxiliara si o initializam cu a[1],a[1]=a[3-1+1],

a=a[n-i+1]; //a[3-1+1]=a[1], la a 2-a intrare in ciclu aux=a[2],

a[n-i+1]=aux; //a[2]=a[3-2+1] (in cazul nostru (n=3)nici nu se schimba)

// adica lasam primul elem gol, ultimul devine primul,si aux(val primului elem)

//ultimul, adica un fel de interschimbare

}

for(i=1;i<=n;i++)

cout << a; //scrie noua asezare a elemntelor din lista

}

 

 

ps

 

sper ca n-am scris atat de geaba si o sa pricepi ce-am facut acolo :evil:

 

"dar nu poti sa-la faci in asa fel incat sa fie in C si sa foloseasca functia getchar" :pee

 

(intinzi un deget si-ti ia toata mana) :o: :doh:

Share this post


Link to post
Share on other sites

Se pare ca am vazut tema asta cu intarziere oricum felicitari worca27

Share this post


Link to post
Share on other sites

sau uite un exemplu de inversare al unui numar, nu al unui sir:

 

#include<stdio.h>

main()

{

int n,ninv=0;

printf("n=");

scanf("%de",&n);

while (n)

{

ninv=ninv*10+n%10;

n=n/10;

}

printf("%de",ninv);

}

 

exemplu:

 

n=123456789

987654321Press any caey to continue

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×