Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.64 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define DIM 10
  4.  
  5. void ler(int *v, int tam);
  6. void maior_menor(int *v, int tam, int *pMai, int *pMen);
  7. float media_ind_impar(int *v, int tam);
  8. int vetlen(int *v);
  9. int num_meio(int *v);
  10.  
  11. int main(void) {
  12.     int v[DIM];
  13.     int maior, menor;
  14.    
  15.     ler(v, DIM);
  16.     maior_menor(v, DIM, &maior, &menor);
  17.    
  18.     printf("\nMaior Numero: %d\n", maior);
  19.     printf("Menor Numero: %d\n", menor);
  20.     printf("Media Indice Impar: %.1f\n", media_ind_impar(v, DIM));
  21.     printf("Numero do Meio: %d\n", num_meio(v));
  22.  
  23.     return 0;
  24. }
  25.  
  26. /*
  27.  * Ler os elementos do Vetor.
  28.  */
  29. void ler(int *v, int tam) {
  30.     int i;
  31.    
  32.     for(i=0; i<tam; i++) {
  33.         printf("Introd. o N# %d de %d: ", i+1, tam);
  34.         scanf("%d", &v[i]);
  35.        
  36.         if(v[i] == 0)
  37.             break;
  38.     }
  39. }
  40.  
  41. /*
  42.  * Coloca nos ponteiros *pMai e *pMen o maior e menor valor, respectivamente.
  43.  */
  44. void maior_menor(int *v, int tam, int *pMai, int *pMen) {
  45.     int i;
  46.    
  47.     *pMai = *pMen = v[0];
  48.    
  49.     for(i=1; i<tam && v[i]!=0; i++) {
  50.         if(v[i] > *pMai)
  51.             *pMai = v[i];
  52.         else
  53.             if(v[i] < *pMen)
  54.                 *pMen = v[i];
  55.     }
  56. }
  57.  
  58. /*
  59.  * Calcula a media dos indices impares.
  60.  */
  61. float media_ind_impar(int *v, int tam) {
  62.     int i;
  63.     int qtd_ind_imp = 0;
  64.     float sm_md;  /*Soma, Media*/
  65.    
  66.     for(i=0,sm_md=0.0; i<tam && v[i]!=0; i++) {
  67.         if(i % 2 == 1) {
  68.             sm_md += (float)v[i];
  69.             qtd_ind_imp++;
  70.         }
  71.     }
  72.    
  73.     return sm_md / qtd_ind_imp;
  74. }
  75.  
  76. /*
  77.  * Obtem a largura do vetor, bem semelhante a strlen (para largura de uma string).
  78.  */
  79. int vetlen(int *v) {
  80.     int i = 0;
  81.    
  82.     while(v[i] != 0)
  83.         i++;
  84.        
  85.     return i;
  86. }
  87.  
  88. /*
  89.  * Numero do meio do vetor.
  90.  */
  91. int num_meio(int *v) {
  92.     int len = vetlen(v)-1;
  93.    
  94.     return v[len / 2];
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement