Informatică, întrebare adresată de Soanal, 8 ani în urmă

Problema 1 și 2 din poza atașată!

Anexe:

iboom3421: De fapt nu, am reusit
andreidiaconescu18: in ce limbaj? C sau C++
Soanal: C++
andreidiaconescu18: pt punctul 1) ti-am facut rezolvarea
andreidiaconescu18: punctul 2 e destul de ambiguu ca tot introduci si scoti elemente dar conditie de oprire nu are. ti-am facut la punctul 1 functii ca sa pui si sa scoti din coada asa ca le poti folosi pe alea
andreidiaconescu18: daca pop-ul trebuie sa returneze elementul eliminat scoti numa comentariile din functie.
Soanal: Eu habar nu am ce ai făcut acolo. Functiile alea cu asterisc nu am auzit de ele ca void_coada ... Sunt a 11 a și nu am făcut nicio problema în acest mod. Totuși multumesc!
Soanal: La 2 trebuie făcut cu un switch asta știu dar pana acolo nu știu cum sa declarat coada și sa fac cu While. ..
andreidiaconescu18: Functiile void sunt functii care nu returneaza nimic, de unde si numele. Iar asteriscul e pointer(ar fi trebuit sa fi facut in clasa a 9-a la tablouri cum se refera un tablou). Eu l-am implementat cu tablouri dar se poate implementa si cu liste simplu inlantuite dar tot ajungi la pointeri.
andreidiaconescu18: coada poti sa o declari cum ai chef tu de lucru: o poti declara ca un array la care tot shiftezi spre stanga elementele cand faci pop sau o poti declara ca lista si acolo doar muti pointerul.
Iar bucla while trebuie sa aiba o conditie de oprire + un mod in care se spune ce se vrea: push sau pop.

Răspunsuri la întrebare

Răspuns de andreidiaconescu18
1

#include <iostream>

using namespace std;

void push_coada(int x, int *c, int *l)

{

   c[*l]=x;

   *l=*l+1;

}

void pop_coada(int *c, int *l)

{

   if(*l==0)

       return;

   //int e=c[0];

   for(int i=0; i<*l-1; i++)

       c[i]=c[i+1];

   *l=*l-1;

   //return e;

}

int main() {

   int coada[100];

   int l = 0; //lungimea initiala a cozii

   int v[]={2,16,10,15,0,4,0,23,8,0};

   int n = 10;

   for(int i=0; i<n; i++)

       if(v[i]==0)

           pop_coada(coada,&l);

       else

           push_coada(v[i],coada,&l);

   for(int i=0; i<l; i++)

       cout<<coada[i]<<" ";

   return 0;

}

Alte întrebări interesante