ayuda por favor.

juan esteban
12 de Agosto del 2004
hola a todos,

necesito hacer un programa en el cual se ingresen datos a una matriz de 5x4, no se deben ingresar numeros repetidos.

El siguiente código es la forma como se me ocurrio hacerlo, pero no me funciona.

Alguien me podría ayudar.

el compilador me ubica el error en la linea en la que yo le asigno la devolucion de la funcion "busca repetidos" a la variable aprobacion.

los errores que muestra el turbo c++ son.

1. Cannot convert 'int' to 'int'[4] *'

2. Type mismatch in parameter ´matriz´ in call to 'buscarrepetidos(int[4] *,int,int)'

me supongo que esos "*" tienen que ver con apuntadores, pero no los se usar, le agradeceria a alguien que me pueda ayudar con este código.



#include<iostream.h>
#include<conio.h>

int buscarepetidos(int matriz[5][4],int aux,int si)
{
int i,j;
si=0;
do
{
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
if(aux==matriz[i][j])
si=1;
}
}
}
while(si!=0);
return si;
}





void main()
{
clrscr();
int aprobacion,aux,si;
int i,j,columna;
int matriz[5][4];
cout<<"Ingresar los datos de la matriz---> ";
for(i=0;i<5;i++)
{
columna=11;
for(j=0;j<4;j++)
{
do
{
gotoxy(columna,(i*2)+14);
cin>>matriz[i][j];
aux=matriz[i][j];
aprobacion=buscarepetidos(matriz[5][4],aux,si);
}
while(aprobacion!=0);
columna+=4;
}
}
getch();





Drizzt
12 de Agosto del 2004
Intenta cambiar la línea:
aprobacion=buscarepetidos(matriz[5][4],aux,si);
por lo siguiente:
buscarepetidos(matriz[5][4],aux,si);
if(si) aprobacion=1;
else aprobacion=0;

Puede que asi el fallo que te daba de convertir el valor desaparezca. Suerte

ana
12 de Agosto del 2004

Prueba a hacer la llamada así:

aprobacion=buscarepetidos(matriz,aux,si);

Yo también quitaría "si" dado que no lo usas ni para pasar un valor a la función ni para devolverlo. Lo declararía local en buscarepetidos