România
Roportal.ro

stiva

Început de strycnine, Mie 11 mai 2005 · 6 răspunsuri · 8.398 vizualizări

strycnine3 mesaje#1

#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

work27129 mesaje#2

#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

:)"

strycnine3 mesaje#3

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

work27129 mesaje#4

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:

work27129 mesaje#7

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

← Înapoi la Programare