Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int x;
- int b=0;
- typedef struct equipa{
- char NomeEquipa[30];
- int vitorias;
- int derrotas;
- int sets_ganhos;
- int sets_perdidos;
- struct equipa *prox;
- }equipa;
- equipa*inicio,*temp,*fim,*ant,*aux,*temp2;
- typedef struct desqualificados{
- char NomeEquipa[30];
- int vitorias;
- int derrotas;
- int sets_ganhos;
- int sets_perdidos;
- struct desqualificados *prox2;
- }desqualificados;
- desqualificados*inicio2,*temp3;
- void inserir(){
- char nome[40];
- int s;
- temp=(equipa *) malloc(sizeof(struct equipa));
- printf("Insira o nome da equipa: ");
- scanf("%s",nome);
- if (inicio!=NULL){
- temp2=inicio;
- while (temp2 != NULL){
- if (strcmp(temp2 -> NomeEquipa,nome)==0){
- while (strcmp(temp2 -> NomeEquipa,nome)==0){
- printf("Nome ja existe, insira um diferente:");
- scanf("%s",nome);
- }
- }
- temp2 = temp2 -> prox;
- }
- }
- strcpy(temp->NomeEquipa,nome);
- printf("Insira o numero de vitorias: ");
- scanf("%d",&temp->vitorias);
- printf("Insira o numero de derrotas: ");
- scanf("%d",&temp->derrotas);
- printf("Insira o numero de sets ganhos: ");
- scanf("%d",&temp->sets_ganhos);
- printf("Insira o numero de sets perdidos: ");
- scanf("%d",&temp->sets_perdidos);
- if (inicio==NULL){
- inicio=temp;
- inicio->prox=NULL;
- }
- else{
- if (inicio->vitorias < temp->vitorias){
- temp->prox=inicio;
- inicio=temp;
- }
- else if(inicio->vitorias == temp->vitorias){
- if (inicio->sets_ganhos < temp->sets_ganhos){
- temp->prox=inicio;
- inicio=temp;
- }
- else{
- ant=inicio;
- aux=inicio;
- while (aux->sets_ganhos > temp->sets_ganhos && aux->prox!=NULL){
- ant=aux;
- aux=aux->prox;
- }
- if (aux->sets_ganhos <= temp->sets_ganhos){
- ant->prox=temp;
- temp->prox=aux;
- }
- else{
- temp->prox=aux->prox;
- aux->prox=temp;
- }
- }
- }
- else{
- ant=inicio;
- aux=inicio;
- while (aux->vitorias > temp->vitorias && aux->prox!=NULL){
- ant=aux;
- aux=aux->prox;
- }
- if (aux->vitorias <= temp->vitorias){
- ant->prox=temp;
- temp->prox=aux;
- }
- else{
- temp->prox=aux->prox;
- aux->prox=temp;
- }
- }
- }
- b=1;
- }
- void elimina(){
- int d=0;
- printf("------------------------------------------\n");
- if(b==1){
- int x;
- scanf("%d",&x);
- aux=inicio;
- while(aux!=NULL){
- if((aux->vitorias+aux->derrotas)!=x){
- if(aux==inicio){
- inicio=inicio->prox;
- free(aux);
- }
- else{
- ant->prox=aux->prox;
- free(aux);
- }
- d++;
- }
- ant=aux;
- aux=aux->prox;
- }
- if(d==0){
- printf("Nao existe!\n");
- }
- }
- else{
- printf("Nao criou a lista!\n");
- }
- printf("------------------------------------------\n");
- }
- void listagem(){
- printf("------------------------------------------\n");
- if(b==1){
- temp=inicio;
- while(temp!=NULL){
- printf(" Nome: %s\n",temp->NomeEquipa);
- printf("Vitorias: %d\n",temp->vitorias);
- printf("Derrotas: %d\n",temp->derrotas);
- printf("Sets Ganhos: %d\n",temp->sets_ganhos);
- printf("Sets Perdidos: %d\n",temp->sets_perdidos);
- printf("------------------------------------------\n");
- temp=temp->prox;
- }
- }
- else{
- printf("Nao criou a lista!\n");
- }
- printf("------------------------------------------\n");
- }
- void desqualificado(){
- printf("------------------------------------------\n");
- if(b==1){
- temp=inicio;
- while(temp!=NULL){
- if(temp->sets_ganhos==0){
- temp3=(desqualificados*)malloc(sizeof(desqualificados));
- strcpy(temp3->NomeEquipa,temp->NomeEquipa);
- temp3->vitorias=temp->vitorias;
- temp3->derrotas=temp->derrotas;
- temp3->sets_ganhos=temp->sets_ganhos;
- temp3->sets_perdidos=temp->sets_perdidos;
- if(inicio2==NULL){
- inicio2=temp3;
- inicio2->prox2=NULL;
- }
- else{
- temp3->prox2=NULL;
- inicio2=temp3;
- }
- }
- temp=temp->prox;
- }
- }
- else{
- printf("Nao criou a lista!\n");
- }
- temp3=inicio2;
- while(temp3!=NULL){
- printf("Nome: %s\n",temp3->NomeEquipa);
- printf("Vitorias: %d\n",temp3->vitorias);
- printf("Derrotas: %d\n",temp3->derrotas);
- printf("Sets Ganhos: %d\n",temp3->sets_ganhos);
- printf("Sets Perdidos: %d\n",temp3->sets_perdidos);
- temp3=temp3->prox2;
- }
- printf("------------------------------------------\n");
- }
- int main(){
- int q;
- do{
- printf("1-Inserir equipas\n");
- printf("2-Listagem da lista\n");
- printf("3-Elimina\n");
- printf("4-Desqualificados\n");
- printf("5-Sair\n");
- printf("------------------------------------------\n");
- scanf("%d",&q);
- switch(q){
- case 1:
- inserir();
- break;
- case 2:
- listagem();
- break;
- case 3:
- elimina();
- break;
- case 4:
- desqualificado();
- break;
- }
- }while(q!=5);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement