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

Ajutor va rog mult
1. Se consideră următoarea declarație:
struct nod {
int inf;
nod *urm; };
typedef struct nod * Lista;
a) Creați o lista simplu înlănțuită până la introducerea elementului cu valorea 100;
b) Scrieţi o funcţie care să primească ca parametru adresa primului nod al unei liste simplu înlănţuite şi care să returneze numărul de noduri ale listei, a cărei informație utilă este număr nenegativ par.
c) Sa se scrie o functie care primeste ca parametru adresa primului nod al listei si insereaza in fata fiecarui nod care memoreaza o valoare nenegativa un nod care sa memoreze dublul acestuia.

Răspunsuri la întrebare

Răspuns de AlexCz
1

Răspuns:

#include <iostream>  

using namespace std;

struct nod{

   int inf;

   nod *urm;

}*lista;

void adaugareFinal(nod *&lista, int x){

   nod *q = new nod;

   q -> inf = x;

   q -> urm = NULL;

   if(lista == NULL)

       lista = q;

   else{

       nod *t = lista;

       while(t -> urm)

           t = t -> urm;

       t -> urm = q;

   }

}

int f(nod *lista){

   int nrPoz = 0;

   for(nod *p=lista; p; p=p->urm)

       if(((p -> inf)%2 == 0) && ((p -> inf) >= 0))

           ++nrPoz;

   return nrPoz;

}

void adaugareMijloc(nod *mij, int x){

   nod *q = new nod;

   q -> inf = x;

   q -> urm = mij -> urm;

   mij -> urm = q;

}

void dublare(nod *lista){

   nod *q = lista;

   while(q){

       if(q -> inf >= 0){

           adaugareMijloc(q, q->inf*2);

           q = q -> urm;

       }

       q = q -> urm;

   }

}

void afisare(nod *lista){

   for(nod *p=lista; p; p=p->urm)

       cout << p -> inf << ' ';

}

int main()

{

   int nr;

   cin >> nr;

   while(nr != 100){

       adaugareFinal(lista, nr);

       cin >> nr;

   }

   cout << f(lista) << endl;

   dublare(lista);

   afisare(lista);

   return 0;

}


Rayzen: Nenegativ inseamnă negativ negat, adică >= 0.
Rayzen: !(n < 0) ⇒ n >= 0
AlexCz: deci e prima varianta, mersi. modific acm
andrei122390: Multumesc dar poti sa-mi spui ce inseamna
cout<
andrei122390: cout<
andrei122390: ca nu iteleg cout<
andrei122390: cout<
andrei122390: f(lista)
AlexCz: functia f este de tip int, deci returneaza o valoare. de asta folosim cout << f(lista)
Alte întrebări interesante