Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #include<ctype.h>
  5.  
  6.  
  7.  
  8. typedef struct{
  9.  
  10. int classificacao;
  11. float media;
  12. float nota1,nota2,nota3,nota4;
  13. char resultado[20];
  14. char nome[80];
  15.  
  16.  
  17. }dados;
  18.  
  19. void info (dados *vet,int cand);
  20. void med(dados *vet,int i);
  21. void buble (dados*vet,int cand);
  22. void classific(dados *vet,int cand);
  23. void result(dados *vet,int cand, int vagas);
  24. void buble2 (dados*vet,int cand);
  25. void saida(dados *vet,int cand);
  26.  
  27.  
  28. void info (dados *vet,int cand){
  29.  
  30. for(int i = 0; i < cand; i++){
  31.  
  32. scanf("%s",vet[i].nome);
  33. scanf("%f",&vet[i].nota1);
  34. scanf("%f",&vet[i].nota2);
  35. scanf("%f",&vet[i].nota3);
  36. scanf("%f",&vet[i].nota4);
  37. }
  38. }
  39.  
  40. void med(dados *vet,int i){
  41. float media;
  42. media = ((vet[i].nota1 + vet[i].nota2 +vet[i].nota3 + vet[i].nota4)/4);
  43. vet[i].media = media;
  44. }
  45.  
  46.  
  47.  
  48. void buble (dados*vet,int cand){
  49. dados aux;
  50. for(int i = 0; i < cand; i++){
  51. for(int j = (i+1); j < cand; j++){
  52. if(vet[i].media < vet[j].media){
  53. aux = vet[i];
  54. vet[i] = vet[j];
  55. vet[j] = aux;
  56. }
  57. }
  58. }
  59. }
  60.  
  61. /*for(int i=0;i<100;i++){
  62. for(int j=0;j<99;j++){
  63.  
  64. if((strcmp(lista2[j],lista2[j+1]))>0){
  65. // trocou=true;
  66. strcpy(aux,lista2[j]);
  67. strcpy(lista2[j],lista2[j+1]);
  68. strcpy(lista2[j+1],aux);
  69. strcpy(aux,lista[j]);
  70. strcpy(lista[j],lista[j+1]);
  71. strcpy(lista[j+1],aux);
  72. }*/
  73.  
  74. void classific(dados *vet,int cand){
  75. for(int i = 0; i < cand; i++){
  76. vet[i].classificacao = (i+1);
  77. }}
  78.  
  79. void result(dados *vet,int cand, int vagas){
  80. for(int i = 0; i < cand; i++){
  81.  
  82. if(vet[i].media < 7){
  83. strcpy(vet[i].resultado,"Desclassificado");
  84. }
  85.  
  86. if(( vet[i].classificacao > vagas) && (vet[i].media >= 7)){
  87. strcpy(vet[i].resultado,"Classificado");
  88. }
  89.  
  90. if((vet[i].classificacao <= vagas) && (vet[i].media >= 7)){
  91. strcpy(vet[i].resultado,"Aprovado");
  92. }
  93.  
  94.  
  95. }
  96. }
  97.  
  98. void buble2(dados *vet, int cand){
  99. dados a;
  100. for(int i = 0; i < cand; i++){
  101. for(int j = (i+1); j < cand; j++){
  102. if(strcmp(vet[i].nome,vet[j].nome) > 0){
  103. a = vet[i];
  104. vet[i] = vet[j];
  105. vet[j] = a;
  106. }
  107. }
  108. }
  109. }
  110.  
  111. void saida(dados *vet,int cand){
  112.  
  113. for(int i = 0; i < cand; i++){
  114. printf("%s %.2f %d %s\n",vet[i].nome,vet[i].media,vet[i].classificacao,vet[i].resultado);
  115. }
  116. }
  117.  
  118. int main(void){
  119.  
  120. int vagas;
  121. int cand;
  122. scanf("%d %d",&vagas,&cand);
  123. dados *aluno;
  124. aluno =(dados*)malloc(sizeof(dados)*cand);
  125. info(aluno,cand);
  126. for(int i = 0; i < cand; i++){
  127. med(aluno,i);
  128. }
  129. buble(aluno,cand);
  130. classific(aluno,cand);
  131. result(aluno,cand,vagas);
  132. buble2(aluno,cand);
  133. saida(aluno,cand);
  134.  
  135.  
  136.  
  137. return 0;
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement