Informatică, întrebare adresată de 59alina, 8 ani în urmă

c++
1. De la tastatura se introduce un numar natural n. Creati o lista unidirectionala ce va contine divizorii acestui numar.
2. De la tastatura se introduc doua numere naturale m si n. Creati o lista unidirectionala ce va contine multiplii numarului m mai mici cu numarul n.
3. De la tastatura se introduce u numar natural n, apoi n numere intregi. Creati o lista unidirectionala ce va contine numerele distincte dintre cele introduse de la tastatura.
4. De la tastatura se introduce un numar natural n, apoi n numere intregi. Creati doua liste unidirectionale, astfel incat una sa contina numerele negative, iar cealalta - numerele nenegative dintre cele n numere introduse de la tastatura.
5. De la tastatura se introduce un numar natural n, apoi n numere intregi. Creati doua liste unidirectionale astfel incat una sa contina numerele pare, iar cealalta - numerele impare dintre cele n numere introduse de la tastatura.

Răspunsuri la întrebare

Răspuns de Rayzen
3

#include <iostream>

using namespace std;

struct Nod {

   int value;

   Nod* next;

};

Nod* cap = NULL;

void afisareLista(Nod* cap) {

   while (cap != NULL)

   {

       cout << cap->value << " ";

       cap = cap->next;

   }

}

void inserareInceput(Nod*& cap, int valoare)

{

   Nod* p = new Nod;

   // Construim noul nod

   p->value = valoare;

   p->next = cap;

   cap = p;  

}

int main()

{

   // Problema 1

   /*int n;

   cin >> n;

   for (int d = 1; d <= n; d++)

   {

       if (n % d == 0)

       {

           inserareInceput(cap, d);

       }

   }

   afisareLista(cap);*/

   // Problema 2

   /*int m, n;

   cin >> m >> n;

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

   {

       inserareInceput(cap, i * m);

   }

   afisareLista(cap);*/

   // Problema 3

   /*int n, numar;

   int maiExista;

   cin >> n;

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

   {

       cin >> numar;

       maiExista = 0;

       Nod* temp = cap;

       while (temp != NULL)

       {

           if (numar == temp->value)

           {

               maiExista = 1;

               break;

           }

           temp = temp->next;

       }

       if (!maiExista)

       {

           inserareInceput(cap, numar);

       }

   }

   afisareLista(cap);*/

   // Problema 4

   /*int n, numar;

   cin >> n;

   Nod* capNegative = NULL;

   Nod* capNenegative = NULL;

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

   {

       cin >> numar;

       if (numar < 0)

       {

           inserareInceput(capNegative, numar);

       }

       else

       {

           inserareInceput(capNenegative, numar);

       }

   }

   afisareLista(capNegative);

   cout << "\n";

   afisareLista(capNenegative);*/

   // Problema 5

   /*int n, numar;

   cin >> n;

   Nod* capPare = NULL;

   Nod* capImpare = NULL;

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

   {

       cin >> numar;

       if (numar % 2 == 0)

       {

           inserareInceput(capPare, numar);

       }

       else

       {

           inserareInceput(capImpare, numar);

       }

   }

   afisareLista(capPare);

   cout << "\n";

   afisareLista(capImpare);*/

}


lucaciucandrei: FRUMOS, dar data viitoare incearca sa faci cerintele separat! sunt exercitii, nu subpuncte ;)
Alte întrebări interesante