Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- struct clasament {
- int p;
- char nume[16];
- };
- struct tara {
- char nume[16];
- };
- int search(struct tara **a, char c[16], int ln) {
- int i;
- for (i = 1; i < 13; i++){
- if(strcmp(a[ln][i].nume,c) == 0)
- return 0;
- }
- return 1;
- }
- int poz(char c[16], struct clasament *v,int nr) {
- int i;
- for(i = 0; i < nr; i++) {
- if(strcmp(c, v[i].nume) == 0) {
- return i;
- }
- }
- return -1;
- }
- void swapc(char *str1, char *str2) {
- char tmp[16];
- strcpy(tmp, str1);
- strcpy(str1, str2);
- strcpy(str2, tmp);
- }
- void swapi(int *nr1, int *nr2) {
- int tmp = *nr1;
- *nr1 = *nr2;
- *nr2 = tmp;
- }
- void sort(struct clasament *v, int nr, int p) {
- int i, j;
- for (i = 0; i < nr - 1; i++) {
- for (j = i + 1; j < nr; j++) {
- if(v[i].p < v[j].p){
- swapi(&v[i].p,&v[j].p);
- swapc(v[i].nume,v[j].nume);
- }
- }
- }
- for(i = 0; i < p; i++){
- printf("%s\n",v[i].nume);
- }
- }
- int main(){
- int n, i, j, g = 0, id, nr = 0;
- char fisier[20];
- struct tara **a;
- struct clasament *v;
- scanf("%d%s",&n,fisier);
- FILE *f1 = fopen (fisier, "r");
- v = malloc(n * sizeof(struct clasament));
- a = malloc(n * sizeof(struct tara*));
- for (i = 0; i < n; i++) {
- a[i] = malloc(13 * sizeof(struct tara));
- }
- for (i = 0; i < n; i++){
- for (j = 0; j < 13 ; j++) {
- fscanf(f1, "%s", a[i][j].nume);
- }
- }
- for (i = 0; i < n; i++){
- if (search(a, a[i][0].nume, i)) {
- for(j = 0; j < 13; j++) {
- id = poz(a[i][j].nume, v, nr);
- if (id >= 0) {
- strcpy(v[id].nume, a[i][j].nume);
- if (j > 0) {
- v[id].p += 12 - j + 1;
- }
- } else {
- strcpy(v[nr].nume, a[i][j].nume);
- if (j > 0) {
- v[nr].p += 12 - j + 1;
- } else {
- v[nr].p = 0;
- }
- nr++;
- }
- }
- } else {
- printf("Juriu descalificat: %s\n",a[i][0].nume);
- }
- }
- sort(v, nr, 10);
- printf("0 PUNCTE:\n");
- while(v[nr - 1].p == 0 && nr - 1 >= 0) {
- printf("%s\n", v[nr].nume);
- nr--;
- }
- fclose(f1);
- free(v);
- for (i = 0; i < n; i++) {
- free(a[i]);
- }
- free(a);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement