Mostrar los elementos no repetidos de una matriz, AYUDAA!
Publicado por Juan Cruz (6 intervenciones) el 31/03/2016 02:05:44
El programa consiste en ingresar por teclado una matriz de caracteres, luego mostrar la matriz original y la matriz con guiones en lugar de los elementos repetidos
El programa funciona cuando se repiten todos los elementos de la matriz, pero cuando hay un no repetido este se imprime varias veces con un guion al final. Nose como hacer que el elemento se imprima solo una vez!!
El programa funciona cuando se repiten todos los elementos de la matriz, pero cuando hay un no repetido este se imprime varias veces con un guion al final. Nose como hacer que el elemento se imprima solo una vez!!
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
#include "iostream"
#include "string"
using namespace std;
int main()
{
char **a; //declaro variables
bool sal;
char comp,*b;
int i=0,k,l=0,j,f=0,c=0,m=0,n=0;
cout<<"Ingrese el numero de filas: "; //ingreso por teclado las filas y columnas
cin>>f;
cout<<"Ingrese el numero de columnas: ";
cin>>c;
a = new char* [f]; //genero la matriz original
for (i = 0; i < f; i++)
a[i] = new char[c];
b = new char [2*f*c]; //genero el vector de repeticiones
for(i=0;i<2*f*c;i++) //lleno el vector de -1
b[i]=-1;
for(i=0;i<f;i++) //ingreso cada elemento de la matriz
for(j=0;j<c;j++)
{
cout<<"Ingrese el elemento A["<<i+1<<"]["<<j+1<<"]";
cin>>a[i][j];
}
for(i=0;i<f;i++) //imprimo la matriz original
{
cout<<endl;
for(j=0;j<c;j++)
cout<<a[i][j]<<" ";
}
cout<<endl;
for(i=0;i<f;i++) //guardo en el vector los elementos repetidos
for(j=0;j<c;j++)
for(k=0;k<f;k++)
for(l=0;l<c;l++)
if((a[i][j]==a[k][l])&&((i!=k)||(j!=l)))
{
b[m]=a[k][l];
m++;
}
cout<<endl; //imprimo el vector
for(i=0;((i<2*f*c)&&(b[i]!=-1));i++)
cout<<b[i]<<" ";
cout<<endl;
for(i=0;i<f;i++) //imprimo la matriz sin los repetidos
{
cout<<endl;
for(j=0;j<c;j++){
k=0;
sal=0;
while(sal==0)
{
if(a[i][j]==b[k])
{
cout<<"- ";
sal=1;}
else{
k++;
if(b[k+1]==-1)
cout<<a[i][j]<<" ";
}}}}
return 0;
}
Valora esta pregunta


0