Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct nod
- {
- char *denumire;
- float pu;
- int num;
- struct nod *urm;
- } NOD;
- NOD *r = NULL;
- void sortare()
- {
- NOD *h = r, *i, *j;
- for (i = h; i != NULL && i->urm != NULL; i=i->urm)
- {
- NOD *c = i;
- for (j = i->urm; j != NULL; j=j->urm)
- {
- if ((float)(j->pu * j->num) > (float)(c->pu * c->num))
- c = j;
- }
- if (c != i)
- {
- float aux;
- int x;
- aux = c->pu;
- x = c->num;
- c->pu = i->pu;
- c->num = i->num;
- i->pu = aux;
- i->num = x;
- }
- }
- r = h;
- }
- int main(void)
- {
- int n, i, x;
- float f;
- char s[20];
- NOD *p, *u;
- scanf("%d", &n);
- for (i = 0; i < n; i++)
- {
- p = (NOD *)malloc(sizeof(NOD));
- if (p == NULL)
- {
- printf("Memorie insuficienta");
- exit(1);
- }
- if (r == NULL)
- r = u = p;
- else
- u->urm = p;
- //scanf("%s", s);
- fgets(s, 20, stdin);
- s[strlen(s) - 1] = '\0';
- p->denumire = (char *)malloc(strlen(s) + 1);
- strcpy(p->denumire, s);
- scanf("%f", &f);
- p->pu = f;
- scanf("%d", &x);
- p->num = x;
- p->urm = NULL;
- u = p;
- }
- sortare();
- for(p = r; p != NULL; p = p->urm)
- printf("%s, %f, %d\n", p->denumire, p->pu, p->num);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement