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++) } 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.