Advertisement
Kimossab

[AP] Exame 2016

Jan 22nd, 2016
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.24 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. /*
  6. 1
  7. A = char *c
  8. B = *c >= 'a' && *c <= 'z'
  9. C = *c = *c+'A'-'a';
  10. D = return; NAO SEI PORQUE TEM D
  11. */
  12.  
  13. //2
  14. void RetiraEspacosString(char *s)
  15. {
  16.     int i=0;
  17.     int auxiliar=0;
  18.     while(s[i] != '\0')
  19.     {
  20.         if(s[auxiliar] != s[i])
  21.             s[auxiliar] = s[i];
  22.         if(s[i] != ' ')
  23.             auxiliar++;
  24.         i++;
  25.     }
  26.     s[i] = '\0';
  27. }
  28.  
  29. //3
  30. void RemoverImpares(int Vi[], int N, int Vf[], int *nf)
  31. {
  32.     int x=0;
  33.     for(int i=0; i<N; i++)
  34.     {
  35.         if(Vi[i]%2 == 0)
  36.         {
  37.             Vf[x] = Vi[i];
  38.             x++;
  39.         }
  40.     }
  41.     *nf = x;
  42. }
  43.  
  44. //4
  45. //a)
  46. typedef struct
  47. {
  48.     float altura;
  49.     float massa;
  50.     char genero;
  51.     int dianasc;
  52.     int mesnasc;
  53.     int anonasc;
  54. }Individuo;
  55.  
  56. //b)
  57. int Saudaveis(Individuo *vect_int, int n_ind)
  58. {
  59.     float IMC;
  60.     int count=0;
  61.     for(int i=0; i<n_ind; i++)
  62.     {
  63.         IMC = vect_int[i].massa/(vect_int[i].altura*vect_int[i].altura);
  64.         if(IMC >= 18.5 && IMC <= 24.9)
  65.             count++;
  66.     }
  67.     return count;
  68. }
  69.  
  70. //c)
  71. float MediaPassado(Individuo *vect_int, int n_ind)
  72. {
  73.     float media=0;
  74.     int count=0;
  75.     for(int i=0; i<n_ind; i++)
  76.     {
  77.         if(vect_int[i].anonasc < 2000)
  78.         {
  79.             media += vect_int[i].massa/(vect_int[i].altura*vect_int[i].altura);
  80.             count++;
  81.         }
  82.     }
  83.     return media/count;
  84. }
  85.  
  86. //d)
  87. int ContaFemininoAno(Individuo *vect_int, int n_ind, int ano)
  88. {
  89.     int count=0;
  90.     for(int i=0; i<n_ind; i++)
  91.     {
  92.         if(vect_int[i].anonasc == ano && vect_int[i].genero == 'F')
  93.         {
  94.             count++;
  95.         }
  96.     }
  97.     return count;
  98. }
  99.  
  100. //5
  101. float Soma(int N, int i, float negexp=-1, float exp=3)
  102. {
  103.     if(i == N)
  104.         return negexp*(i/exp);
  105.     negexp *= -1;
  106.     exp*=3;
  107.     return negexp*(i/exp) + Soma(N,++i,negexp,exp);
  108. }
  109.  
  110. //6
  111. void Ordenar(int *vector, int N)
  112. {
  113.     int aux;
  114.     for(int i=N; i>0; i--)
  115.     {
  116.         for(int x=0; x<i-1; x++)
  117.         {
  118.             if(vector[x] > vector[x+1])
  119.             {
  120.                 aux = vector[x+1];
  121.                 vector[x+1] = vector[x];
  122.                 vector[x] = aux;
  123.             }
  124.         }
  125.     }
  126. }
  127.  
  128. void main()
  129. {
  130.     char *c = (char *)malloc(sizeof(char) * 20);
  131.     strcpy(c,"  Teste  Teste .");
  132.     RetiraEspacosString(c);
  133.     printf("%s\n", c);
  134.  
  135.     int v[] = {7,4,2,1,6,9};
  136.     int a[6];
  137.     int x;
  138.     RemoverImpares(v,6,a,&x);
  139.     printf("%d\n", x);
  140.     for(int i=0; i<x; i++)
  141.         printf("[%d]",a[i]);
  142.  
  143.     printf("\n");
  144.     Ordenar(v,6);
  145.     for(int i=0; i<6; i++)
  146.         printf("[%d]",v[i]);
  147.  
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement