• Lunes 20 de Mayo de 2024, 11:58

Autor Tema:  array de numeros reales  (Leído 1603 veces)

ermiguel1979

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
array de numeros reales
« en: Domingo 10 de Enero de 2010, 16:05 »
0
Buenas tardes a todos. Tengo una duda existencial que me trae de cabeza. ¡No consigo hacer una matriz de números reales!. Solo puedo hacerla de enteros y.... que cabreo...

En fin, tengo que realizar un algoritmo que lea una matriz de dimensión mx2 (m filas y 2 columnas), que muestre la mayor de las medias de ambas columnas.

El ejercicio no especifica que los números introducidos en la matriz deban ser reales. Pero me gustaría saber como se hace.

Os dejo mi código (que funciona bien para números enteros...):

Código: C
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. #define FILAS 50
  6.  
  7. int main (void){
  8.     int matriz[FILAS][2];  
  9.     int numerofilas;                 //bandera que indica las filas de la matriz
  10.     int fila, columna=0;
  11.     float suma_c1=0, suma_c2=0;    
  12.     float media_c1, media_c2;
  13.    
  14.     printf("Indique el numero de filas para una martiz mx2 (fila, columna): ");
  15.     scanf("%i", &numerofilas);
  16.     printf("Trabaja con una matriz %ix2n", numerofilas);
  17.     /*Llena la matriz y hace la sumatoria por columnas*/    
  18.     for(columna=0; columna<2; columna++){
  19.         for(fila=0; fila<numerofilas; fila++){
  20.             printf("Introduzca elemento[%i][%i]: ", fila, columna);        
  21.             scanf("%i", &matriz[fila][columna]);
  22.                 if(columna==0){
  23.                     suma_c1 += matriz[fila][columna];
  24.                 }else{
  25.                     suma_c2 += matriz[fila][columna];
  26.                 }
  27.         }
  28.         printf("n");
  29.     }  
  30.     /*Muestra la matriz*/
  31.     columna=0;
  32.     for(fila=0; fila<numerofilas; fila++){
  33.         printf("%i%2in", matriz[fila][columna], matriz[fila][columna+1]);
  34.     }
  35.     /*Calcula la media mas alta*/
  36.     media_c1=suma_c1/numerofilas; media_c2=suma_c2/numerofilas;
  37.     printf("media_c1 = %ftmedia_c2 = %fn", media_c1, media_c2);
  38.     if(media_c1>media_c2){
  39.         printf("La media de la primera columna es mayor: %fn", media_c1);
  40.     }else{
  41.         printf("La media de la segunda columna es mayor: %fn", media_c2);
  42.     }
  43.    
  44.     return 0;  
  45. }
  46.  
  47.  

La cosa es que declarando "float matriz[FILAS][2]" la cosa no funciona. He probado alguna cosilla de internet
como: float[][] matriz = new float[FILAS][2]    pero nada...

No se si será mi compilador "C-free", o que soy un autentico paquete en esto de la programación...

Agradezco cualquier consejo.

Un saludo!

Miguel.

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: array de numeros reales
« Respuesta #1 en: Lunes 11 de Enero de 2010, 12:57 »
0
te da algun fallo al compilar?

yo lo que veo es que recibes los valores en un  scanf ("%i"... eso es para cargar enteros. Deberias usar scanf("%f ...

si el fallo es solo que no entran bien los valores quizas solo sea eso.

ermiguel1979

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
Re: array de numeros reales
« Respuesta #2 en: Lunes 11 de Enero de 2010, 17:11 »
0
Gracias diego.martinez; se ve que mi compilador tuvo una mala tarde. Hoy se me ha quedado una cara de capullo cuando se lo he comentado a mi profe de prácticas...
...por lo menos tres veces probé a declarar la matriz como: float matriz[][] y a almacenar los valores con el %f... y no compilaba.

Puede que sea problema de mi programa, porque hoy despues de clase lo he hecho y funciona  :argh: . En fin, uso C-free y no se como es de bueno. Pero me da que no es muy fiable, nosenose... nos lo pusieron en lugar del Dev-c++, porque el C-free es gratis y tal...

...¿me recomiendas algún otro compilador?.

Un saludo!

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: array de numeros reales
« Respuesta #3 en: Martes 12 de Enero de 2010, 09:56 »
0
el visual studio 8 xpress es gratis tambien