Numero mayor de una matriz
Publicado por Sebastián (31 intervenciones) el 07/12/2016 22:51:32
Hola saludos a todos, tengo un pequeño problema que se me ha presentado y la verdad me ayudarían mucho con su opinión y ayuda.
Tengo que hacer el siguiente ej :
Elaborar una función que reciba una matriz, el número de fila y el número de columna, para escribir el mayor número almacenado en la matriz, su posición dentro de la misma, el número de la fila y el número de la columna.
El programa debe leer el número de filas, el número de columnas y la matriz, luego escribir la matriz en forma matricial por filas, el número mayor y el lugar donde se encuentra dentro de la matriz.
Lo hice usando cin y cout y me funciono perfectamente , pero al trasladarlo a printf y scanf, el programa funciona mal lee las filas, y toca ingresar otro valor para que ingrese las columnas , almacena mal en la matriz.
¿A que se puede deber esto?
Muchas Gracias por su ayuda
Tengo que hacer el siguiente ej :
Elaborar una función que reciba una matriz, el número de fila y el número de columna, para escribir el mayor número almacenado en la matriz, su posición dentro de la misma, el número de la fila y el número de la columna.
El programa debe leer el número de filas, el número de columnas y la matriz, luego escribir la matriz en forma matricial por filas, el número mayor y el lugar donde se encuentra dentro de la matriz.
Lo hice usando cin y cout y me funciono perfectamente , pero al trasladarlo a printf y scanf, el programa funciona mal lee las filas, y toca ingresar otro valor para que ingrese las columnas , almacena mal en la matriz.
¿A que se puede deber esto?
Muchas Gracias por su ayuda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<windows.h>
#include<stdio.h>
//protitipo de la funciones
void leerMatriz(float u[100][100], int *dim1, int *dim2, float mayor);
void validarMatriz(float u[100][100], float mayor, int fila, int columna, int *dim1, int *dim2);
int main()
{
system("mode 60, 45");
system("color 9F");
float mayor = 0;
float u[100][100];
int fila = 0, columna = 0;
int dim1 = 0, dim2 = 0;
leerMatriz(u, &dim1, &dim2, mayor);
validarMatriz(u, mayor, fila, columna, &dim1, &dim2);
getch();
}
void leerMatriz(float u[][100], int *dim1, int *dim2, float mayor)
{
int i, j;
printf("Introduce las filas de la matriz: ");
scanf("%d ", dim1);
while ((*dim1 <= 0))
{
printf("Introduce las filas de la matriz: ");
scanf("%d ", dim1);
}
printf("Introduce las columnas de la matriz: ");
scanf("%d ", dim2);
while ((*dim2 <= 0))
{
printf("Introduce las columnas de la matriz: ");
scanf("%d ", dim2);
}
printf("\n");
for (i = 0; i<*dim1; i++)
{
//cout << "Introduce los numeros de la fila " << i + 1 << ": \n";
printf("Introduce los numeros de la fila: %d\n", i+1);
for (j = 0; j<*dim2; j++)
{
scanf("%f", &u[i][j]);
}
}
}
void validarMatriz(float u[][100], float mayor, int fila, int columna, int *dim1, int *dim2)
{
int i, j;
for (i = 0; i<*dim1; i++)
{
for (j = 0; j<*dim2; j++)
{
if (mayor<u[i][j])
{
mayor = u[i][j];
fila = i;
columna = j;
}
}
}
printf("La matriz ingresada es la siguiente:\n");
for (i = 0; i<*dim1; i++)
{
for (j = 0; j<*dim2; j++)
{
printf("\t%.2f\t", u[i][j]);
}
printf("\n");
}
printf("\n");
printf("El numero mayor es el: %.2f, ", mayor);
printf("En la posicion %d, %d", fila+1, columna+1);
printf("\n\n\n");
getch();
}
Valora esta pregunta
0