SHARE
TWEET

Untitled

jpvieiraa Mar 24th, 2019 55 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int x;
  5. int b=0;
  6. typedef struct equipa{
  7.     char NomeEquipa[30];
  8.     int vitorias;
  9.     int derrotas;
  10.     int sets_ganhos;
  11.     int sets_perdidos;
  12.     struct equipa *prox;
  13. }equipa;
  14. equipa*inicio,*temp,*fim,*ant,*aux,*temp2;
  15. typedef struct desqualificados{
  16.     char NomeEquipa[30];
  17.     int vitorias;
  18.     int derrotas;
  19.     int sets_ganhos;
  20.     int sets_perdidos;
  21.     struct desqualificados *prox2;
  22. }desqualificados;
  23. desqualificados*inicio2,*temp3;
  24. void inserir(){
  25.     char nome[40];
  26.     int s;
  27.     temp=(equipa *) malloc(sizeof(struct equipa));
  28.     printf("Insira o nome da equipa: ");
  29.     scanf("%s",nome);
  30.     if (inicio!=NULL){
  31.         temp2=inicio;
  32.         while (temp2 != NULL){
  33.             if (strcmp(temp2 -> NomeEquipa,nome)==0){
  34.                 while (strcmp(temp2 -> NomeEquipa,nome)==0){
  35.                     printf("Nome ja existe, insira um diferente:");
  36.                     scanf("%s",nome);  
  37.                 }
  38.             }
  39.             temp2 = temp2 -> prox;
  40.         }
  41.     }
  42.     strcpy(temp->NomeEquipa,nome);
  43.     printf("Insira o numero de vitorias: ");
  44.     scanf("%d",&temp->vitorias);
  45.     printf("Insira o numero de derrotas: ");
  46.     scanf("%d",&temp->derrotas);
  47.     printf("Insira o numero de sets ganhos: ");
  48.     scanf("%d",&temp->sets_ganhos);
  49.     printf("Insira o numero de sets perdidos: ");
  50.     scanf("%d",&temp->sets_perdidos);
  51.    
  52.     if (inicio==NULL){
  53.         inicio=temp;
  54.         inicio->prox=NULL;
  55.     }
  56.     else{
  57.         if (inicio->vitorias < temp->vitorias){
  58.             temp->prox=inicio;
  59.             inicio=temp;
  60.         }
  61.         else if(inicio->vitorias == temp->vitorias){
  62.             if (inicio->sets_ganhos < temp->sets_ganhos){
  63.                 temp->prox=inicio;
  64.                 inicio=temp;
  65.             }
  66.             else{
  67.                 ant=inicio;
  68.                 aux=inicio;
  69.                 while (aux->sets_ganhos > temp->sets_ganhos && aux->prox!=NULL){
  70.                     ant=aux;
  71.                     aux=aux->prox;
  72.                 }
  73.                 if (aux->sets_ganhos <= temp->sets_ganhos){
  74.                     ant->prox=temp;
  75.                     temp->prox=aux;
  76.                 }
  77.                 else{
  78.                     temp->prox=aux->prox;
  79.                     aux->prox=temp;
  80.                 }
  81.             }
  82.         }
  83.         else{
  84.             ant=inicio;
  85.             aux=inicio;
  86.             while (aux->vitorias > temp->vitorias && aux->prox!=NULL){
  87.                 ant=aux;
  88.                 aux=aux->prox;
  89.             }
  90.             if (aux->vitorias <= temp->vitorias){
  91.                 ant->prox=temp;
  92.                 temp->prox=aux;
  93.             }
  94.             else{
  95.                 temp->prox=aux->prox;
  96.                 aux->prox=temp;
  97.             }
  98.         }
  99.     }
  100.     b=1;
  101. }
  102. void elimina(){
  103.     int d=0;
  104.     printf("------------------------------------------\n");
  105.     if(b==1){
  106.         int x;
  107.         scanf("%d",&x);
  108.         aux=inicio;
  109.         while(aux!=NULL){
  110.            
  111.             if((aux->vitorias+aux->derrotas)!=x){
  112.                
  113.                 if(aux==inicio){
  114.                     inicio=inicio->prox;
  115.                     free(aux);
  116.                    
  117.                 }
  118.                 else{
  119.                     ant->prox=aux->prox;
  120.                 free(aux);
  121.                 }
  122.                 d++;
  123.             }
  124.            
  125.             ant=aux;
  126.             aux=aux->prox;
  127.         }
  128.         if(d==0){
  129.             printf("Nao existe!\n");
  130.         }
  131.     }
  132.     else{
  133.         printf("Nao criou a lista!\n");
  134.     }
  135.     printf("------------------------------------------\n");
  136. }
  137. void listagem(){
  138.     printf("------------------------------------------\n");
  139.     if(b==1){
  140.         temp=inicio;
  141.         while(temp!=NULL){
  142.             printf(" Nome: %s\n",temp->NomeEquipa);
  143.             printf("Vitorias: %d\n",temp->vitorias);
  144.             printf("Derrotas: %d\n",temp->derrotas);
  145.             printf("Sets Ganhos: %d\n",temp->sets_ganhos);
  146.             printf("Sets Perdidos: %d\n",temp->sets_perdidos);
  147.             printf("------------------------------------------\n");
  148.             temp=temp->prox;
  149.         }
  150.     }
  151.     else{
  152.         printf("Nao criou a lista!\n");
  153.     }
  154.     printf("------------------------------------------\n");
  155. }
  156. void desqualificado(){
  157.     printf("------------------------------------------\n");
  158.     if(b==1){
  159.         temp=inicio;
  160.         while(temp!=NULL){
  161.             if(temp->sets_ganhos==0){
  162.                 temp3=(desqualificados*)malloc(sizeof(desqualificados));
  163.                 strcpy(temp3->NomeEquipa,temp->NomeEquipa);
  164.                 temp3->vitorias=temp->vitorias;
  165.                 temp3->derrotas=temp->derrotas;
  166.                 temp3->sets_ganhos=temp->sets_ganhos;
  167.                 temp3->sets_perdidos=temp->sets_perdidos;
  168.                 if(inicio2==NULL){
  169.                     inicio2=temp3;
  170.                     inicio2->prox2=NULL;
  171.                 }
  172.                 else{
  173.                     temp3->prox2=NULL;
  174.                     inicio2=temp3;
  175.                 }
  176.             }
  177.             temp=temp->prox;
  178.         }
  179.     }
  180.     else{
  181.         printf("Nao criou a lista!\n");
  182.     }
  183.     temp3=inicio2;
  184.     while(temp3!=NULL){
  185.         printf("Nome: %s\n",temp3->NomeEquipa);
  186.         printf("Vitorias: %d\n",temp3->vitorias);
  187.         printf("Derrotas: %d\n",temp3->derrotas);
  188.         printf("Sets Ganhos: %d\n",temp3->sets_ganhos);
  189.         printf("Sets Perdidos: %d\n",temp3->sets_perdidos);
  190.         temp3=temp3->prox2;
  191.     }
  192.     printf("------------------------------------------\n");
  193. }
  194. int main(){
  195.     int q;
  196.     do{
  197.         printf("1-Inserir equipas\n");
  198.         printf("2-Listagem da lista\n");
  199.         printf("3-Elimina\n");
  200.         printf("4-Desqualificados\n");
  201.         printf("5-Sair\n");
  202.         printf("------------------------------------------\n");
  203.         scanf("%d",&q);
  204.         switch(q){
  205.             case 1:
  206.                 inserir();
  207.                 break;
  208.             case 2:
  209.                 listagem();
  210.                 break; 
  211.             case 3:
  212.                 elimina();
  213.                 break;
  214.             case 4:
  215.                 desqualificado();
  216.                 break;
  217.         }
  218.     }while(q!=5);
  219.     return 0;  
  220. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top