Hola q tal bueno mi duda es la siguiente necesito un programa que lea una matriz introducida por el usuario supuestamente cada fila pertenece a las calificaciones de un alumno y se quiere saber las calificaciones mas altas de todos los alumnos e introduirlas en un vector para despues hacer el promedio
el problema es como paso los elementos de una matriz a un vector???
espro puedan ayudarme de antemano gracias
Con una sentencia repetitiva, por ejemplo.
Pero si quieres ayuda, pon el código que lleves hecho.
Pues si cada fila de la matriz es un alumno siendo i el indice del bucle para recorrerla también será la posición del vector. Cuando hayas recorrido todas las columnas de i pones la nota más alta en vector[i]
bueno esto es lo que llevo espero puedan ayudarme
#include <stdio.h>
#include <conio.h>
#define ne 30
#define nf 10
#define nc 10
void leemat (int, int, float[nf][nc]);
void impmat (int, int, float[nf][nc]);
void vector (int, float[nf][nc], float[ne]);
float promvector(float [ne], float);
int main (void)
{
int m, n;
float a[nf][nc], v[ne]
printf("Da el numero de filas");
scanf("\n%d", &m);
printf("Da el numero de columnas");
scanf("\n%d", &n);
printf("Da los elementos de la matriz");
leemat(m, n, a);
void vector(m, n, a, v);
prom=promvector(m, v[ne]);
printf("\n\t\t\t MATRIZ");
impmat(m, n, a,);
salida(v, prom);
getch();
}
void leemat(int m, int n, float x[nf][nc])
{
int i, j;
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
scanf("%f", &x[j]);
}
void vector (int m, int n, float x[nf][nc], float v[ne])
{
int i, j;
em=x[1][1];
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
if(em<x[1][j]); //el problema es como hacer esto para un numero indeterminado
em=x[1][j]; //de filas y pasar los valores a un vector
float v[ne]=x[?][?];
}
float promvector(int m, float v[ne])
{
float prom;
int i;
int m;
for (i=1; i<=m; i++)
prom=(prom+x)/m
return(prom);
}
void impmat(int m, int n, float y[nf][nc], float v[ne])
{
int i, j;
for(i=1; i<=m; i++)
{
printf("\n\n\t\t");
for(j=1; j<=n; j++)
printf(" %.2f", y[j]);
}
}
Creo que hay otra forma, pero yo suelo pasar matrices a una función usando punteros. Podría ser solucionado de esta forma:
int * recorreMatriz (int **matriz, int x, int y)
{
int num = 0;
int i,j;
int *vector;
num = x * y;
vector = (int *) malloc(sizeof(int)*num);
for(i=0;i<y;i++)
{
for(j=0; j<x; j++)
{
vector[x*y] = matriz[i][x];
}
}
return vector;
}
Se puede hacer mejor y el código no lo he probado esta escrito ahí al tun tun, pero a bote pronto pienso que eso es lo que buscas.
salu2