Advertisement
jpvieiraa

Untitled

Mar 24th, 2019
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.76 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement