Código C++:
Ver original#include<iostream>
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
#define F 10
#define C 10
using namespace std;
int matriz[F][C];
void punto_silla (int **matriz)
{
int MinCol=100, ContCol=0;
int MaxFil=0, ContFil=0;
int PuntoS=0;
for (int j=0; j<C; j++)
{
for (int i=0; i<F; i++)
if (matriz[i][j]<=MinCol)
{
MinCol=matriz[i][j];
ContCol=i;
}
for (int j2=0; j2<C; j2++)
MaxFil=MaxFil>=matriz[ContCol][j2]?MaxFil:matriz[ContCol][j2];
if (matriz[ContCol][j]==MaxFil)
{
PuntoS++;
cout<<"Hay un punto de silla ("<<matriz[ContCol][j]<<") en:"<<endl;
cout<<"Fila: "<<j+1<<'t'<<"Columna: "<<ContCol+1<<endl;
}
}
cout<<"Hay "<<PuntoS<<" puntos de silla"<<endl;
}
void matriz_aleatoria()
{
for (int i=0; i<F; i++)
for (int j=0; j<C; j++)
matriz
[i
][j
]= rand()%100;
}
void escribe_matriz(int **matriz)
{
for (int i=0; i<F; i++)
for (int j=0; j<C; j++)
{
cout<<matriz[i][j]<<'t';
cout<<endl;
}
}
int main()
{
matriz_aleatoria();
escribe_matriz(&matriz);
punto_silla (&matriz);
return EXIT_SUCCESS;
}
Buenas, este programita me da los siguientes errores:
Linea 66 cannot convert `int (*)[10][10]' to `int**' for argument `1' to `void escribe_matriz(int**)'
Línea 67 cannot convert `int (*)[10][10]' to `int**' for argument `1' to `void punto_silla(int**)'
y no sé qué quieren decir, supongo que hay algo mal en los punteros...
Se podría hacer sin punteros? y sin declarar la matriz como variable global? intenté generar la matriz aleatoriamente con matriz_aleatoria y luego hacer un return para llevarla a main pero no hubo manera..
Agradezco vuestros comentarios. Un saludo.