Programación General > C++ Builder
quien puede corregirme este programa en c++
miguelb18:
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;
}
m0skit0:
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 = 0a[0] == b[0] -> 0 == 1 -> Falsoi = 1a[1] == b[1] -> 1 == 2 -> Falsoetc... 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).
miguelb18:
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:
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.
miguelb18:
bueno voy a hacer lo que me dices... podrias darme tu correo para cualquier cosa preguntarte?
Navegación
[#] Página Siguiente
Ir a la versión completa