Buenas ;D
Resulta que tengo un ejercicio, pero no funciona como debería ::) el asunto es que necesito que de cierto rango de enteros ingresarlos a diferentes arreglos dependiendo si es par o no.
#include <iostream>
using namespace std;
int main()
{
bool esPar(int);
void mostrarArreglo(int arreglo[], int tam);
int pares[20], nones[20];
int i, j;
for(i = 5, j=0; i<=100; i = i+5, j++)
{
if(esPar(i) == true)
{
pares[j] = i;
}
else
{
nones[j] = i;
}
}
mostrarArreglo(pares,20);
return 0;
}
bool esPar(int x)
{
if(x%2 == 0)
{
return true;
}
else
{
return false;
}
}
void mostrarArreglo(int arreglo[], int tam){
for (int i = 0 ; i < tam ; i++)
cout << arreglo[i] << ", ";
}
Cuando lo ejecuto parece que el arreglo realmente nunca se llena y me muestra los datos basura del buffer.
Gracias por los comentarios :D
Zalu2
PD: No sé porqué lo movieron del subforo de c++ pero bueno :-\
Hay tienes compañero.
#include <iostream>
using namespace std;
bool esPar(int x){
if(x%2 == 0){
return true;
}
else{
return false;
}
}
void mostrarArreglo(int arreglo[], int tam){
for (int i = 0 ; i < tam ; i++)
cout << arreglo[i] << " ";
}
int main(){
int pares[20] = {0};
int nones[20] = {0};
int i, j;
for(i = 5, j=0; i<=100; i += 5, j++){
if(esPar(i) == true){
pares[j] = i;
}
else{
nones[j] = i;
}
}
cout << "Arreglo de numeros pares: ";
mostrarArreglo(pares, 20);
cout << endl;
cout << "Arreglo de numeros impar: ";
mostrarArreglo(nones, 20);
return 0;
}
Lo único que debías hacer era inicializar a 0 los arreglos, para que estos no almacenasen ningún valor "basura".
Un saludo!!
Gracias por la ayuda ;D eso de estar acostumbrado a otros lenguajes se me olvida este tipo de cosas :o
Lo modifiqué al último un poco y quedo así:
#include <iostream>
using namespace std;
int main(){
bool esPar(int);
void mostrarArreglo(int[], int);
int pares[20] = {NULL};
int nones[20] = {NULL};
int i, j=0 , k=0;
for(i = 5; i<=100; i += 5){
if(esPar(i) == true)
{
pares[j++] = i;
}
else
{
nones[k++] = i;
}
}
cout << "Arreglo de numeros pares: ";
mostrarArreglo(pares, j);
cout << endl;
cout << "Arreglo de numeros impar: ";
mostrarArreglo(nones, k);
return 0;
}
bool esPar(int x){
if(x%2 == 0){
return true;
}
else{
return false;
}
}
void mostrarArreglo(int arreglo[], int tam){
for (int i = 0 ; i < tam ; i++)
cout << arreglo[i] << " ";
}
Espero que a alguien le sirva :D
Zalu2!