Hola necesito que el valor de tres digitos que el usuario ingrese sea buscado digito por digito en la matriz. mi programa lo hace con errores :cccc
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void cargar(int** matriz, int filas, int colum);
void mostrar(int** matriz, int filas, int colum);
void cargar_vec(int* vector, int tam);
void izq_der(int** matriz, int filas, int columnas, int* valor1, int* valor2, int* valor3);
void der_izq(int** matriz, int filas, int columnas, int* valor1, int* valor2, int* valor3);
void arr_aba(int** matriz, int filas, int columnas, int* valor1, int* valor2, int* valor3);
void aba_arr(int** matriz, int filas, int columnas, int* valor1, int* valor2, int* valor3);
int main(int argc, char** argv) {
int **matriz, filas, colum, i,j,k;
int *vector, tam;
int valor1, valor2, valor3, valor;
printf("Ingrese numero de filas\n");
scanf("%d", &filas);
printf("Ingrese numero de columnas\n");
scanf("%d", &colum);
//matriz dinamica
if(filas>=3 && colum>=3)
{
matriz=(int **)malloc(sizeof(int)*filas);
for(i=0;i<filas;i++)
{
matriz=(int *)malloc(sizeof (int)*colum);
}
cargar(matriz,filas,colum);
mostrar(matriz,filas,colum);
}
else
{
printf("\nERROR\n\n");
return 0;
}
getch();
system("cls");
//vector dinamico
printf("Ingrese tamano del vector\n");
scanf("%d",&tam);
vector = (int *)malloc(sizeof(int)*tam);
for(k=0; k<tam; k++)
{//for
printf("Ingrese valor:\n");
scanf("%d", &valor);
if(valor>=0)
{//1
if(valor<=999)
{//2
valor1 = valor / 100;
valor2 = (valor % 100) / 10;
valor3 = (valor % 100) % 10 / 1;
if(valor>=100)
{//3
printf("%d %d %d \n\n", valor1, valor2, valor3);
}//3
}//2
}//1
else
{
printf("ERROR\n");
printf("Ingrese un numero de 3 digitos\n");
}
izq_der(matriz, filas, colum,&valor1, &valor2, &valor3);
der_izq(matriz, filas, colum,&valor1, &valor2, &valor3);
arr_aba(matriz, filas, colum,&valor1, &valor2, &valor3);
aba_arr(matriz, filas, colum,&valor1, &valor2, &valor3);
}//for
return 0;
}
//----------------------------------------------------------------------------------------------------------------------//
void cargar(int** matriz, int filas, int colum)
{
int i,j;
srand(time(NULL));
for(i=0; i<filas; i++)
{
for(j=0;j<colum;j++)
{
fflush(stdin);
matriz[j]=rand()%9;
}
}
}
//---------------------------------------------------------------------------------------------------------------------------//
void mostrar(int** matriz, int filas, int colum)
{
int i,j;
for(i=0; i<filas; i++)
{
for(j=0;j<colum;j++)
{
printf("%d\t",matriz[j]);
}
printf("\n");
}
}
//---------------------------------------------------------------------------------------------------------------------------------//
void izq_der(int** matriz, int filas, int columnas, int* valor1, int* valor2, int* valor3)
{
int i, j;
for(i=0; i<filas; i++)
{//f1
for(j=0;j<columnas;j++)
{//f2
if(matriz[j]==*valor1)
{//1
if(matriz[j+1]==*valor2)
{//2
if(matriz[j+2]==*valor3)
{//3
printf("La posicion del valor 1: %d,%d \n\n",i,j);
printf("La posicion del valor 2: %d,%d \n\n",i,j+1);
printf("La posicion del valor 3: %d,%d \n\n",i,j+2);
// i=filas;
// j=columnas;
}//3
}//2
}//1
}//f2
}//f1
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
void der_izq(int** matriz, int filas, int columnas, int* valor1, int* valor2, int* valor3)
{
int i, j;
for(i=0; i<filas; i++)
{
for(j=0;j<columnas;j++)
{
if(matriz[j]==*valor1)
{//1
if(matriz[j-1]==*valor2)
{//2
if(matriz[j-2]==*valor3)
{//3
printf("La posicion del valor 1: %d,%d \n\n",i,j);
printf("La posicion del valor 2: %d,%d \n\n",i,j-1);
printf("La posicion del valor 3: %d,%d \n\n",i,j-2);
i=filas;
j=columnas;
}//3
}//2
}//1
}//f2
}//f1
}
//----------------------------------------------------------------------------------------------------------------------------//
void arr_aba(int** matriz, int filas, int columnas, int* valor1, int* valor2, int* valor3)
{
int i, j;
for(i=0; i<filas; i++)
{
for(j=0;j<columnas;j++)
{
if(matriz[j]==*valor1)
{//1
if(matriz[i+1][j]==*valor2)
{//2
if(matriz[i+2][j]==*valor3)
{//3
printf("La posicion del valor 1: %d,%d \n\n",i,j);
printf("La posicion del valor 2: %d,%d \n\n",i+1,j);
printf("La posicion del valor 3: %d,%d \n\n",i+2,j);
i=filas;
j=columnas;
}//3
}//2
}//1
}
}
}
//--------------------------------------------------------------------------------------------------------------------------//
void aba_arr(int** matriz, int filas, int columnas, int* valor1, int* valor2, int* valor3)
{
int i, j;
for(i=0; i<filas; i++)
{//f1
for(j=0;j<columnas;j++)
{//f2
if(matriz[j]==*valor1)
{//1
if(matriz[i-1][j]==*valor2)
{//2
if(matriz[i-2][j]==*valor3)
{//3
printf("La posicion del valor 1: %d,%d \n\n",i,j);
printf("La posicion del valor 2: %d,%d \n\n",i-1,j);
printf("La posicion del valor 3: %d,%d \n\n",i-2,j);
i=filas;
j=columnas;
}//3
}//2
}//1
}//f2
}//f1
}