Hola bueno despues de poder solucionar el problema de este vector (http://"foro.elhacker.net/programacion_cc/error_con_vectores_solucionado-t328406.0.html") me pretendi a hacer los mismo pero ahora ingresar los elementos pares e impares
y formar el vector q contenga los pares e impares.
Hasta el momento solo logre q me imprima los pares y nada mas:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int vec[10],vpar[5],vimpar[5];
int n1,j,i,x,n2,y;
//---------CARGA DEL VECTOR------------- //
for(j=0;j<5;j++)
{
printf("Ingrese vector impar:");
scanf("%d",&n1);
vimpar[j]=n1;
printf("Ingrese vector par:");
scanf("%d",&n2);
vpar[j]=n2;
}
//---------EVALUA CONTENIDO DEL VECTOR------------- //
for(y=0,i=0,x=0;x<10;x++)
{
if (vec[x]==vimpar[x])
{
vec[i++]=vimpar[x];
}
else
{
vec[i++]=vpar[x];
}
}
//---------IMPRIME DATOS DEL VECTOR------------- //
printf("Los elementos del vectore son:\n");
for(j=0;j<10;j++)
{
printf(" %d ||",vec[j]);
}
printf("\n");
return 0;
}
Saludos!
no entiendo mucho lo que estas haciendo
for(y=0,i=0,x=0;x<10;x++)
{
if (vec[x]==vimpar[x])// vec no tiene otra cosa que basura para que comparar??
{
vec[i++]=vimpar[x];
}
else
{
vec[i++]=vpar[x];
}
}
Cita de: nicolasblues86 en 26 Mayo 2011, 01:15 AM
no entiendo mucho lo que estas haciendo
for(y=0,i=0,x=0;x<10;x++)
{
if (vec[x]==vimpar[x])// vec no tiene otra cosa que basura para que comparar??
{
vec[i++]=vimpar[x];
}
else
{
vec[i++]=vpar[x];
}
}
Eso es lo q me esta fallando al parecer la idea es que
vec[0] le asigne vimpar[0]
vec[1] le asigne vpar[0]
vec[2] le asigne vimpar[1]
vec[3] le asigne vapar[1]
y asi hasta 10 en este caso.
justamente ahi esta el problema lo que pasa que vec no tiene valores asignados por lo tanto cuando vos haces
" if (vec[x]==vimpar[x]) "
estas comparando el contenido de vec
- que no es nada es basura porque jamas se le asigno nada con el contenido de vimpar
- que si se lo havias asignado
for(y=0,i=0,x=0;x<10;x++) // Y no la estas usando en ningun lado e i esta al cuete
{
if (vec[x]==vimpar[x])//estas comparadno al vec que no esta inicializado osea que tiene basura dentro, con un vector con un valor par en la posicion x.
{ // no es necesario usar llaves cuando tenes una sentencia sola, las llaves encierran un conjunto de sentencias
vec[i++]=vimpar[x];//le estas sumando 1 a vec, por lo que ira de 1 a 10 (overflow) y no de 0 a 9
}
else
{
vec[i++]=vpar[x];
}
}
Sabemos que los numeros pares son divisibles por 2 y el resto es 0
Entonces seria mas facil preguntar para saber si es par o impar, si
vimpar[x]%2==0
Citar% devuelve el resto de la divicion.
Pd. en Conclusión con lo dicho anteriormente por el otro usuario que me gano de mano XD
esa condicion if simpre va a ser falsa por eso solo te muestra los pares
Me olvide de dejarles la solución si que aca esta:
Saludos y disculpen la tardanza.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int vec[10],vpar[5],vimpar[5];
int n1,j,i,x,n2,y;
//---------CARGA DEL VECTOR------------- //
for(j=0;j<5;j++)
{
printf("Ingrese vector impar:");
scanf("%d",&vimpar[j]);
printf("Ingrese vector par:");
scanf("%d",&vpar[j]);
}
for(j=0;j<5;j++)
{
printf("Vector impar:[%d] || vector par:[%d]\n",vimpar[j],vpar[j]);
}
//---------EVALUA CONTENIDO DEL VECTOR------------- //
for(j=0,i=0,x=0;x<10;x++)
{
if ((x%2)==0)
{
vec[x]=vimpar[i++];
}
else
{
vec[x]=vpar[j++];
}
}
//---------IMPRIME DATOS DEL VECTOR------------- //
printf("\n\nLos elementos del vectore son:\n");
for(j=0;j<10;j++)
{
printf("\t|| %d ||\n",vec[j]);
}
return 0;
}