Lunes 23 de Diciembre de 2024, 01:20
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
C++ Builder
(Moderador:
Eternal Idol
) »
quien puede corregirme este programa en c++
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: quien puede corregirme este programa en c++ (Leído 2495 veces)
miguelb18
Nuevo Miembro
Mensajes: 4
quien puede corregirme este programa en c++
«
en:
Miércoles 20 de Octubre de 2010, 21:54 »
0
Buenas a todos soy nuevo en el foro... Este programa debe ser un menu que al ejecutar la primera opcion me carge 10 numeros en un arreglo, la 2da opcion me carge otros 10 numeros en otro arreglo y la 3ra opcion debe cargarme en otro arreglo los numeros repetidos entre el primer y el segundo arreglo todo eso mediante funciones... pero la tercera funcion esta mal formulada pudieran ayudarme a corregirla?
#include <cstdlib>
#include <iostream>
#define MAX 10
using namespace std;
int cargar1 (float a[]);
int cargar3 (float b[]);
int buscar (float a[], float b[],float c[]);
int main()
{
float c[MAX];
float b[MAX];
float a[MAX];
int opcion;
do {
cout<<"Proyecto De Programacion In";
cout<<"n1) LLenar array A";
cout<<"n2) Llenar array B";
cout<<"n3) Detectar duplicados";
cout<<"n4) Salirn";
cout<<"nIndica la opcion:n";
cin>>opcion;
switch (opcion){
case 1:{
cargar1 (a);
break;}
case 2:{
cargar3 (b);
break;}
case 3:{
buscar (a,b,c);
break;
}
default:{
if (opcion != 4){
cout<<"Su opcion no esta disponiblen";
cout<<"Intentelo con otra 1, 2 , 3 o 4 n";
}
}
}
}while (opcion != 4);
return 0;
}
int cargar1 (float a[])
{int i;
for (i=0; i<10; i++)
{cout<<"nIndique un numero de un digito:nn";
cin>>a
;
}
return 0;
}
int cargar3 (float b[])
{int i;
for (i=0; i<10; i++)
{cout<<"nIndique un numero de un digito:nn";
cin>>b
;
}
return 0;
}
int buscar (float a[], float b[], float c[])
{int i;
for (i=0;i<10;i++){
if (a
== b
)
{a
= c
;}
}
return 0;
}
Tweet
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: quien puede corregirme este programa en c++
«
Respuesta #1 en:
Miércoles 20 de Octubre de 2010, 22:18 »
0
La verdad es que esa función de
buscar()
está difícil de corregir pues básicamente no tiene mucho que ver con lo que quieres hacer. Veamos cómo lo estás intentando hacer:
Código: C
for
(
i
=
0
;
i
<
10
;
i
++
)
{
if
(
a
[
i
]
==
b
[
i
]
)
{
a
[
i
]
=
c
[
i
]
;
}
}
Así vas sólo comprobando los elementos coincidentes. Por ejemplo, supongamos que a = {0,1,2,3,4} y b = {1,2,3,4}. Tu código hace:
Código: Text
i = 0
a[0] == b[0] -> 0 == 1 -> Falso
i = 1
a[1] == b[1] -> 1 == 2 -> Falso
etc...
Así es obvio que no detecta lo que quieres que detecte.
Éste es el fallo más básico en tu algoritmo. Intenta pensarlo con tranquilidad a ver qué se te ocurre para buscar los números repetidos en dos vectores. Tampoco olvides que necesitas cargarlos en
c
, y que al insertar elementos en
c
necesitas usar un índice aparte.
Aparte, si tu función no necesita devolver ningún valor, no hace falta que la declares como
int
. Ponle
void
.
Saludos
PD: intenta escribir código más legible usando tabulaciones y dejando las llaves solas en una línea (como el ejemplo que te he puesto).
Fr33k K0mpu73r
miguelb18
Nuevo Miembro
Mensajes: 4
Re: quien puede corregirme este programa en c++
«
Respuesta #2 en:
Miércoles 20 de Octubre de 2010, 22:27 »
0
bueno amigo y tu me darias aunke sea una idea de que forma podria hacerlo es que de verdad no se mucho programar estoy empezando y como entenderas tengo mis limitaciones...
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: quien puede corregirme este programa en c++
«
Respuesta #3 en:
Miércoles 20 de Octubre de 2010, 22:30 »
0
Es que la programación trata precisamente de eso, de pensar. Intenta pensarlo un poco, si no das con nada, te voy (vamos) dando pistas. No es muy complicado si imaginas los vectores como objetos físicos (por ejemplo un armario con cajones) y el ordenador como un robot que debe ordenar varios armarios.
Fr33k K0mpu73r
miguelb18
Nuevo Miembro
Mensajes: 4
Re: quien puede corregirme este programa en c++
«
Respuesta #4 en:
Miércoles 20 de Octubre de 2010, 22:35 »
0
bueno voy a hacer lo que me dices... podrias darme tu correo para cualquier cosa preguntarte?
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: quien puede corregirme este programa en c++
«
Respuesta #5 en:
Miércoles 20 de Octubre de 2010, 22:59 »
0
No te preocupes que miraré el foro para responderte. Esto es una comunidad, no una web de citas
Fr33k K0mpu73r
miguelb18
Nuevo Miembro
Mensajes: 4
Re: quien puede corregirme este programa en c++
«
Respuesta #6 en:
Miércoles 20 de Octubre de 2010, 23:05 »
0
y ejecutando una funcion asi lo estoy haciendo mejor? aun no me da pero me parece que es un poco mejor que la otra...
#include <cstdlib>
#include <iostream>
#define MAX 10
using namespace std;
int cargar1 (float a[]);
int cargar3 (float b[]);
int buscar (float a[], float b[],float c[]);
int main()
{
float c[MAX];
float b[MAX];
float a[MAX];
int opcion;
do {
cout<<"Proyecto De Programacion In";
cout<<"n1) LLenar array A";
cout<<"n2) Llenar array B";
cout<<"n3) Detectar duplicados";
cout<<"n4) Salirn";
cout<<"nIndica la opcion:n";
cin>>opcion;
switch (opcion){
case 1:{
cargar1 (a);
break;}
case 2:{
cargar3 (b);
break;}
case 3:{
buscar (a,b,c);
break;
}
default:{
if (opcion != 4){
cout<<"Su opcion no esta disponiblen";
cout<<"Intentelo con otra 1, 2 , 3 o 4 n";
}
}
}
}while (opcion != 4);
return 0;
}
int cargar1 (float a[])
{int i;
for (i=0; i<10; i++)
{cout<<"nIndique un numero de un digito:nn";
cin>>a
;
}
return 0;
}
int cargar3 (float b[])
{int i;
for (i=0; i<10; i++)
{cout<<"nIndique un numero de un digito:nn";
cin>>b
;
}
return 0;
}
int buscar (float a[], float b[], float c[])
{int i,j;
for (i=0;i<10;i++){
for (j=0; j<10;j++){
if (a
== b[j])
{a
= c
;
cin>>c
;}
}
}
return 0;
}
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: quien puede corregirme este programa en c++
«
Respuesta #7 en:
Jueves 21 de Octubre de 2010, 08:38 »
0
Hombre, ahora ya vas por el bien camino
Formatea tu código en condiciones y utiliza las etiquetas de código, tal que así:
Código: C
int
buscar
(
float
a
[
]
,
float
b
[
]
,
float
c
[
]
)
{
int
i
,
j
;
for
(
i
=
0
;
i
<
10
;
i
++
)
{
for
(
j
=
0
;
j
<
10
;
j
++
)
{
if
(
a
[
i
]
==
b
[
j
]
)
{
a
[
i
]
=
c
[
i
]
;
cin
>>
c
[
i
]
;
}
}
}
return
0
;
}
si no, no hay quien lea eso. Por favor, intenta ponerlo así de ahora en adelante.
Bueno, veo que has puesto bucles anidados, que sin duda es la solución más sencilla. Lo que no entiendo es por qué guardas el valor de
c
en
a
(
a
= c
;
) cuando lo que debes hacer es guardar el valor de
a
en
c
(al revés).
cin>>c
;
no viene mucho a cuento, no sé qué intentas hacer con ello.
Y finalmente, como ya te comenté anteriormente, necesitas otro índice más (aparte de i y j) para recorrer
c
, ya que no tiene porqué ir a la par de
a
(aunque puede ocurrir en algún caso aislado).
Saludos, que ya estás a las puertas del éxito.
Fr33k K0mpu73r
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
C++ Builder
(Moderador:
Eternal Idol
) »
quien puede corregirme este programa en c++