Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- typedef struct fotbal
- {
- char *echipa, *tara;
- int nr_trofee, val;
- }b;
- int cmp_tara(const void *a, const void *b)
- {
- struct fotbal *ia = (struct fotbal*)a;
- struct fotbal*ib = (struct fotbal*)b;
- return strcmp(ib->tara, ia->tara);
- }
- void citire(b *a,int *n, char* echipa, char* tara, int nr_trofee, int val)
- {
- (*n)++;
- (a + *n)->echipa = (char*)malloc(strlen(echipa) + 1);
- (a + *n)->tara = (char*)malloc(strlen(tara) + 1);
- strcpy((a + *n)->tara, tara);
- strcpy((a + *n)->echipa, echipa);
- (a + *n)->val = val;
- (a + *n)->nr_trofee = nr_trofee;
- }
- void afisare_struct(b *a, int n)
- {
- int i;
- for (i = 0; i <= n; i++)
- printf("Echipa: %s\nTara: %s\nNr. trofee: %d\nValoarea lotului: %d\n\n", (a + i)->echipa, (a + i)->tara, (a + i)->nr_trofee, (a + i)->val);
- }
- void afisarenrcsiv(b*a, int n)
- {
- printf("\n");
- int i,nrc=0,nrv=0,j;
- for (i = 0; i <= n; i++)
- {
- nrc = 0;
- nrv = 0;
- for (j = 0; j < strlen((a + i)->tara); j++)
- {
- if (strchr("AEIOUaeiou", (a + i)->tara[j]));
- else
- nrc++;
- }
- for (j = 0; j < strlen((a + i)->echipa); j++)
- {
- if (strchr("AEIOUaeiou",(a+i)->echipa[j]))
- nrv++;
- }
- printf("Numar vocale: %d Numar consoane: %d\n", nrv, nrc);
- }
- printf("\n");
- }
- void afisare_fisier(b *a, int n)
- {
- FILE *fis = fopen("Echipe.txt", "w+t");
- int i;
- for (i = 0; i <= n; i++)
- {
- if ((a + i)->val > 500 && (a + i)->nr_trofee < 3)
- fprintf(fis, "Echipa: %s\nTara: %s\nNr. trofee: %d\nValoarea lotului: %d\n\n", (a + i)->echipa, (a + i)->tara, (a + i)->nr_trofee, (a + i)->val);
- }
- }
- void reprezentare(b *a, int n)
- {
- printf("\n");
- int i,j;
- for (i = 0; i <= n; i++)
- {
- for (j = 31; j >= 0; j--)
- {
- if ((a + i)->val >> j & 1)
- printf("1");
- else
- printf("0");
- }
- printf("\n");
- }
- printf("\n");
- }
- int main()
- {
- b a[50];
- int n = -1, nr_trofee, val;
- char echipa[20], tara[20];
- enum{iesire, adaugare, afisare, afisarenrcv, afisarefis, binar, sortare}opt;
- do {
- printf("0. Iesire\n");
- printf("1. Adaugare\n");
- printf("2. Afisare\n");
- printf("3. Afisare nr consoane din tara si nr vocale din echipa\n");
- printf("4. Afisare in fisier a echipelor cu mai putin de 3 trofee si un lot mai mare de 500 euro\n");
- printf("5. Reprezentare binara a valorii\n");
- printf("6. Sortare in ordine invers alfabetica in functie de numele tarii\n");
- printf("opt= ");
- scanf("%d", &opt);
- switch (opt)
- {
- case iesire:exit(0);
- break;
- case adaugare:printf("Echipa: ");
- scanf("%s", echipa);
- printf("Tara: ");
- scanf("%s", tara);
- printf("Nr. trofee: ");
- scanf("%d", &nr_trofee);
- printf("Valoarea lotului: ");
- scanf("%d", &val);
- citire(a, &n, echipa, tara, nr_trofee, val);
- break;
- case afisare:afisare_struct(a, n);
- break;
- case afisarenrcv:afisarenrcsiv(a, n);
- break;
- case afisarefis:afisare_fisier(a, n);
- break;
- case binar:reprezentare(a, n);
- break;
- case sortare:qsort(a, n + 1, sizeof(b), cmp_tara);
- afisare_struct(a, n);
- break;
- default:printf("Eroare!\n");
- break;
- }
- } while (1);
- }
Advertisement
Add Comment
Please, Sign In to add comment