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...):
#include <stdio.h>
#include <stdlib.h>
#define FILAS 50
int main (void){
int matriz[FILAS][2];
int numerofilas; //bandera que indica las filas de la matriz
int fila, columna=0;
float suma_c1=0, suma_c2=0;
float media_c1, media_c2;
printf("Indique el numero de filas para una martiz mx2 (fila, columna): "); scanf("%i", &numerofilas
); printf("Trabaja con una matriz %ix2n", numerofilas
); /*Llena la matriz y hace la sumatoria por columnas*/
for(columna=0; columna<2; columna++){
for(fila=0; fila<numerofilas; fila++){
printf("Introduzca elemento[%i][%i]: ", fila
, columna
); scanf("%i", &matriz
[fila
][columna
]); if(columna==0){
suma_c1 += matriz[fila][columna];
}else{
suma_c2 += matriz[fila][columna];
}
}
}
/*Muestra la matriz*/
columna=0;
for(fila=0; fila<numerofilas; fila++){
printf("%i%2in", matriz
[fila
][columna
], matriz
[fila
][columna
+1]); }
/*Calcula la media mas alta*/
media_c1=suma_c1/numerofilas; media_c2=suma_c2/numerofilas;
printf("media_c1 = %ftmedia_c2 = %fn", media_c1
, media_c2
); if(media_c1>media_c2){
printf("La media de la primera columna es mayor: %fn", media_c1
); }else{
printf("La media de la segunda columna es mayor: %fn", media_c2
); }
return 0;
}
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.