Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- typedef struct Stelian // definim structura Stelian
- {
- int a; // numarul pe care i l vom salva
- struct Stelian *urm; // pointerul catre urmatorul numar
- }Stelian;
- Stelian * AdaugareNumar(Stelian *prim, int a) { // functia de aduagare
- Stelian *q, *p; // pointeri de tip structura ajutatori
- p = prim; // atribum lui p adresa lui prim
- q = (Stelian *)malloc(sizeof(Stelian)); // initialiam pointerul q
- q->a = a; // atribui lui q valaorea a
- q->urm = NULL; // intitalizam cu NULL uramtorul pointer din lista
- if (prim == NULL) // daca este primul numar adaugat in lista
- return q;// atunci returnam q
- while (p->urm != NULL) // altfel mergem pana la ultimul numar din lista
- p = p -> urm; // trecem la urmatorul numar din lista
- p->urm = q; // ii atribuim adresa q penntru ultimul numar din lista
- q->urm = NULL;
- return prim;// returnam tot primul nod
- }
- void AfisareNumere(Stelian *prim) {
- Stelian *q = prim; // atribuim pointerul q adresa primului element
- printf("Numerele sunt: "); // mesaj interactiv cu utilizatorul
- while (q != NULL) {
- printf("%d ", q->a); // afisam elementele pana s-a ajuns la NULL
- q = q->urm; // trecem la urmatorul numar din lista
- }
- }
- void AfisareFiser(Stelian *prim) {
- Stelian * q = prim;
- int a, b, c, nr = 0, aux;
- FILE *f;// variabila de tip fiser
- f = fopen("Numar_numere.txt", "w");
- a = q->a; // citim variabile din lista
- q = q->urm;
- b = q->a;
- q = q->urm;
- c = q->a;
- if (a > b) // le sortam
- {
- aux = a;
- a = b;
- b = aux;
- }
- if (b > c)
- {
- aux = b;
- b = c;
- c = aux;
- }
- if (a > b)
- {
- aux = a;
- a = b;
- b = aux;
- }
- if (a != b) // acum daca sunt sortate si diferite se gasesc diferanta lor -1 numere in ace=l interval
- nr = nr + b - a - 1;
- if(a != c)
- nr = nr + c - a - 1;
- if (b != c)
- nr = nr + c - b - 1;
- fprintf(f, "%d", nr);
- }
- int main()
- {
- Stelian *prim = NULL;
- int a, opt, i;
- do {
- printf("\n1. Adaugare numar\n");
- printf("2. Afisare numere\n"); // mesae interactive
- printf("3. Aflare numar intregi\n");
- printf("optiunea: "); scanf("%d", &opt);
- switch (opt)
- {
- case 0: exit(0);
- case 1:
- printf("Introduceti numerele:\n");
- for (i = 1; i < 4; i++) { // citim cele 3 numere
- printf("Numarul %d = ", i);
- scanf("%d", &a);
- prim = AdaugareNumar(prim, a);
- }
- break;
- case 2:
- AfisareNumere(prim);
- break;
- case 3:
- AfisareFiser(prim);
- break;
- default:
- break;
- }
- } while (1);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment