elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Programación C/C++ / Maximo y minimo de un vector (Funciones) en: 27 Diciembre 2014, 16:02 pm
Estoy aprendiendo a usar funciones y el caso es que ciertas funciones con punteros me resultan algo confusas, así que no sé si lo estoy haciendo bien.

El caso es que el programa funciona bien pero a la hora de meter numeros negativos, por ejemplo:

-10, 2, 4

Me reconoce como maximo el numero negativo (En este caso -10) y como minimo el 2.



Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define DIM 100
  4.  
  5. void leer_vector(int *, int);
  6. void escribir_vector(int *, int);
  7. void max_min_lista(int *, int, int *, int *);
  8.  
  9. int main(int argc, char *argv[])
  10. {
  11.    int dim;
  12.    int vector[DIM];
  13.    int maximo, minimo;
  14.  
  15.    printf("Introduzca la dimension del vector: ");
  16.    scanf("%d",&dim);
  17.  
  18.    leer_vector(vector,dim);
  19.  
  20.    printf("\n");
  21.  
  22.    escribir_vector(vector, dim);
  23.  
  24.    printf("\n");
  25.  
  26.    max_min_lista(vector, dim, maximo, minimo);
  27.  
  28.    printf("\n\n");
  29.  
  30.  
  31.  system("PAUSE");
  32.  return 0;
  33. }
  34.  
  35. void leer_vector(int *v, int dim){
  36.     int i;
  37.     for(i=0;i<dim;i++){
  38.                                      printf("\nElemento (%d): ", i+1);
  39.                                           scanf("%d",&v[i]);
  40.                                           }
  41.     }
  42.  
  43. void escribir_vector(int *v, int dim){
  44.     int i;
  45.     for(i=0;i<dim;i++){
  46.                         printf("%8d ", v[i]);
  47.                         }
  48. }
  49.  
  50. void max_min_lista(int *v, int dim, int *max, int *min){
  51.     int f, c;
  52.  
  53.     min = v[0];
  54.     max = v[0];
  55.  
  56.     for(f=0;f<dim;f++){
  57.                        if(v[f] > max){
  58.                        max = v[f];
  59.                        } else if(v[f] < min){
  60.                        min = v[f];
  61.                        }
  62.                                                              }
  63.  
  64.     printf("Maximo: %d   Minimo: %d", max, min);
  65.                                             }
  66.  
12  Programación / Programación C/C++ / Re: Problema con codigo en C en: 21 Diciembre 2014, 18:09 pm
Muchisimas gracias por la explicación, me ha quedado todo más claro y ya he conseguido hacer que funcione.
13  Programación / Programación C/C++ / Re: Problema con codigo en C en: 21 Diciembre 2014, 16:35 pm
Ya he modificado eso pero sigue saliendome 0, no consigo verlo XDD
14  Programación / Programación C/C++ / Problema con codigo en C en: 21 Diciembre 2014, 15:07 pm
Buenas, estoy aprendiendo a programar en C y tengo una duda.

Al compilar el programa y al hacer la media me devuelve como resultado un 0.0000 y no consigo ver cual es el problema

¿Alguien me echa una mano?








#include <stdio.h>
#include <stdlib.h>
#define DIM 100


void leer_vector(int *, int);
float media_vector (int *, int);
void escribir_vector(int *, int);

int main(int argc, char *argv[])

   
    int dim;
    int vector[DIM];
   
    printf("Introduce la dimension del vector: ");
    scanf("%d",&dim);
   
    leer_vector(vector,dim);
   
   
    printf("\n\n");
   
    escribir_vector(vector,dim);
   
    media_vector(vector,dim);
   
    printf("\n\nMedia: %f", media_vector);
   
    printf("\n\n");
   
  system("PAUSE");   
  return 0;
}


float media_vector (int *v, int dim){
      int i;
      float media;
      media = 0;
      for(i=1;i<=dim;i++){
                          media = media + v;
                          }
     
      return media/dim;
      }
     
     
void leer_vector(int *v, int dim){
     int i;
     for(i=1;i<=dim;i++){
                                      printf("\nElemento (%d): ", i);
                                           scanf("%d",&v);
                                           }
     }
     
void escribir_vector(int *v, int dim){
     int i;
     for(i=1;i<=dim;i++){
                         printf("%8d ", v);
                         }
}
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines