Q tal amigos...
pues el otro dia me pusieron un problema, q era hacer un programa que tuviera un array unidimensional entero, el cual se le introdujera el tamaño q el usario quisiera y luego el usuario lo llenaba con valores introducidos por consola. Luego de esto, el programa debia modificar el array, tal que, cuando se encontrara con un entero que fuera un numero primo par, lo cambiara por 0, y todo lo demas lo cambiara por 1.
Este fue el codigo que hice:
Pero el progrma no cumple su objetivo... y creo q el problema esta aqui:
Creo q es por el pasaje de uno de los elementos del arreglo a la funcion primos... no se si lo habre hecho bien.. por eso quisiera q ustedes, por favor, me pudieran orientar sobre eso..
Gracias de antemano... =)
pues el otro dia me pusieron un problema, q era hacer un programa que tuviera un array unidimensional entero, el cual se le introdujera el tamaño q el usario quisiera y luego el usuario lo llenaba con valores introducidos por consola. Luego de esto, el programa debia modificar el array, tal que, cuando se encontrara con un entero que fuera un numero primo par, lo cambiara por 0, y todo lo demas lo cambiara por 1.
Este fue el codigo que hice:
Código:
#include <iostream>
using namespace std;
void leer_datos (int [], int);
int f1 (int []);
bool primo (int &);
void mostrar_datos (const int [], int);
int main ()
{
int n;
cout << "Introduzca tamano del vector: ";
cin >> n;
int V[n];
leer_datos(V,n);
f1(V);
mostrar_datos(V,n);
cout << endl;
}
void leer_datos (int V[], int a)
{
for (int i = 0; i < a; i++)
{
cout << "Escribir " << i+1 << " valor: ";
cin >> V[i];
}
}
int f1 (int V[])
{
for (int i = 0; i < (sizeof(V)/sizeof(int)); i++)
if (primo(V[i]) && !(V[i]%2==0))
V[i] = 1;
else if (V[i]%2==0)
V[i] = 0;
}
bool primo (int &a)
{
for (int i = 2; i < a; i++)
{
if (a%i == 0)
return true;
}
return false;
}
void mostrar_datos (const int V[], int a)
{
cout << "El vector modificado es: ";
for (int i = 0; i < a; i++)
cout << V[i] <<" ";
}
Pero el progrma no cumple su objetivo... y creo q el problema esta aqui:
Código:
int f1 (int V[])
{
for (int i = 0; i < (sizeof(V)/sizeof(int)); i++)
if (primo(V[i]) && !(V[i]%2==0))
V[i] = 1;
else if (V[i]%2==0)
V[i] = 0;
}
Creo q es por el pasaje de uno de los elementos del arreglo a la funcion primos... no se si lo habre hecho bien.. por eso quisiera q ustedes, por favor, me pudieran orientar sobre eso..
Gracias de antemano... =)