Kimossab

IP/AP - Frequencia 2016

Jan 7th, 2016
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.56 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. /*
  6. 1
  7. A = int
  8. B = char *s, char c
  9. C = n = s;
  10. D = *n != '\0'
  11. E = *n == c
  12. F = count;
  13. */
  14.  
  15. //2
  16. void InverterString(char *s)
  17. {
  18.     char c;
  19.     int len = strlen(s);
  20.     for(int i=0; i<len/2; i++)
  21.     {
  22.         c = s[len-i-1];
  23.         s[len-i-1] = s[i];
  24.         s[i] = c;
  25.     }
  26. }
  27.  
  28. //3
  29. //a
  30. /*
  31. n = 4 | chave = 0 | t = {3,-2,0,4}
  32. i=0
  33. t[i]    |   i   |   n-1
  34. 3       |   0   |   3
  35. i++
  36. -2      |   1   |   3
  37. i++
  38. 0   < sai do ciclo, i fica igual
  39. return i = 2 (0++ = 1 | 1++ = 2)
  40. printf > posicao=3
  41. */
  42. int analise(int n, int chave, int *t)
  43. {
  44.      int i=0;
  45.      while(t[i] != chave && i <= n-1)
  46.         i++;
  47.      if(i>n-1)
  48.          return-1;
  49.      else return i;
  50. }
  51. //b
  52. /*
  53. a função irá pesquisar a posição da chave no array, caso nao exista irá retornar -1.
  54. por exemplo se para o mesmo array do a a chave fosse 3 iria retornar 0, que é o indice do 3 no array.
  55. se a chave fosse por exemplo 5 iria retornar -1, porque nao existe no array.
  56. */
  57.  
  58. //4
  59. //a
  60. void mostrarfich(char *nomefich)
  61. {
  62.     FILE *F = fopen(nomefich,"r");
  63.     if(!F)
  64.         return;
  65.  
  66.     char buffer[20];
  67.     while(!feof(F))
  68.     {
  69.         fgets(buffer,20,F);
  70.         printf("%s",buffer);
  71.     }
  72. }
  73. //b
  74. void vencedor(int *atleta_vencedor, float *resultado, char *nficheiro)
  75. {
  76.     FILE *F = fopen(nficheiro,"r");
  77.     if(!F)
  78.         return;
  79.  
  80.     int at;
  81.     float val;
  82.     *resultado=-1;
  83.     while(!feof(F))
  84.     {
  85.         fscanf(F,"%d%f",&at,&val);
  86.         if(val>*resultado)
  87.         {
  88.             *resultado=val;
  89.             *atleta_vencedor=at;
  90.         }
  91.     }
  92. }
  93. //c
  94. float MediaLancamentos(char *nficheiro)
  95. {
  96.     FILE *F = fopen(nficheiro,"r");
  97.     if(!F)
  98.         return -1;
  99.  
  100.     int cont=0;
  101.     float med;
  102.     while(!feof(F))
  103.     {
  104.         fscanf(F,"%*d%f",&med);
  105.         cont++;
  106.     }
  107.     return med/cont;
  108. }
  109.  
  110. //5
  111. float sum(int N, int i, int fact=1, int elev=1)
  112. {
  113.     fact*=i;
  114.     elev*=3;
  115.     if(i == N)
  116.         return (float)fact/(float)elev;
  117.     return (float)fact/(float)elev + sum(N,++i,fact,elev);
  118. }
  119.  
  120. //6
  121. int PesquisaRecursivo(int *vector, int inf, int sup, int X)
  122. {
  123.     if(*vector == sup && *vector != X)
  124.         return -1;
  125.     if(*vector == X)
  126.         return 0;
  127.     int v = PesquisaRecursivo(++vector,inf,sup,X);
  128.     if(v == -1)
  129.         return -1;
  130.     return v+1;
  131. }
  132.  
  133. void main()
  134. {
  135.     //2
  136.     char *s = (char *)malloc(sizeof(char) * 5);
  137.     strcpy(s,"Test");
  138.     printf("[%s]\n", s);
  139.     InverterString(s);
  140.     printf("[%s]\n", s);
  141.  
  142.     //3
  143.     int a[] = {3,-2,0,4};
  144.     printf("posicao=%d",analise(4,0,a)+1);
  145.  
  146.     //4
  147.     printf("\n");
  148.     mostrarfich("teste.txt");
  149.     printf("\n");
  150.     int v;
  151.     float res;
  152.     vencedor(&v,&res,"teste.txt");
  153.     printf("%d %f\n", v, res);
  154.  
  155.     //6
  156.     int b[] = {2,4,6,8,10};
  157.     printf("\n");
  158.     printf("%d",PesquisaRecursivo(b,2,10,2));
  159.     printf("\n");
  160.  
  161. }
Advertisement
Add Comment
Please, Sign In to add comment