Título: Problema con vectores en C [SOLUCIONADO]
Publicado por: ;c1v!c en 25 Mayo 2011, 20:31 pm
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:"); vimpar[j]=n1; printf("Ingrese vector par:"); 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++) { } return 0; }
Saludos!
Título: Re: Problema con vectores en C
Publicado por: 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]; } }
Título: Re: Problema con vectores en C
Publicado por: ;c1v!c en 26 Mayo 2011, 02:26 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.
Título: Re: Problema con vectores en C
Publicado por: nicolasblues86 en 26 Mayo 2011, 03:24 am
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
Título: Re: Problema con vectores en C
Publicado por: Mr.Blue en 26 Mayo 2011, 03:30 am
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
% 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
Título: Re: Problema con vectores en C
Publicado por: ;c1v!c en 19 Enero 2012, 18:40 pm
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:"); printf("Ingrese vector par:"); } 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; }
|