Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - erikskate1

#1
Hola amigos estoy estudiando vectores para tratar de entenderles mejor pero me he atorado mi problema es (Imprimir la serie 1,5,3,7,5,9,7,11 ) ya se que este problema se puede hacer sin vectores pero quiero hacerlo con vectores =). ya tengo practicamente todo tengo tengo 3 vectores 1 donde se guardara la serie, 1 donde me imprime los numeros (1,3,5,..,n) y 1 vector donde imprime los num (5,7,9,..,n) y aqui viene mi problema quiero juntar esos 2 vectores para que los imprima en 1 solo pero que imprima en este orden
EJEMPLO
VEC1 = 1 3 5 7
VEC2 = 5 7 9 11
SERIE = 1 5 3 7 5 9 7 11  // ocea que me imprima primero la pos 0 del vec1 y luego la pos 0 del vec2 y asi sucesivamente, he intentado varias cosas pero ninguna me funciona. me pueden ayudar porfavor.
Mi codigo es este:

public class Serie {
   public static void main(String[] args) {
    Scanner en = new Scanner(System.in);
    System.out.print("Ingresa el valor de la serie: ");
    int n = en.nextInt();
   
   int veco[] = new int[n];
   int conPar =0,conImp=0;

//FUNCION QUE ME DICE SI ES PAR O NO
      public static boolean pi(int n ){
       if(n %2 == 0){
           return true;
       }else {
           return false;
       }
   }
 
//SE IMPRIME EL PRIMER ARREGLO SIN LA SERIE

   System.out.println("Arreglo primario");
   for (int i=0; i<n ; i++){
       veco [ i ]=i;
        System.out.print("\t"+veco [ i ]);
//SI ES PAR EL SE INCREMENTA UN CONTADOR PARA LOS PARES
       if(pi(i)){
           conPar++;
       }else {
//SI ES IMPAR EL SE INCREMENTA UN CONTADOR PARA LOS IMPARES
           conImp++;
       }
   }
// ARREGLOS VEC1, VEC2
    int par[] = new int[conPar];
    int imp[] = new int[conImp];
    //llenado arreglos auxiliares
   System.out.println("\ntArreglo pares");
  int aux1=1;
   for(int i = 0; i< conPar;i++){
        par [ i ] = aux1;
        aux1 +=2;
          System.out.println(par [ i ]);
//este arreglo contiene los valores 1,3,5,7,..,n
    }
   System.out.println("Arreglo imp");
   int aux=5;
   for(int i = 0; i< conImp;i++){
       
       imp [ i ] = aux;
       aux+=2;
       
         System.out.println(imp [ i ]);

//este arreglo contiene los valores 5,7,9,11,..,n
    }

//aqui es donde mi programa truena :S que es donde trato de juntar los 2 arreglos //y que me imprima la pos0 del arreglo 1 y despues la pos0 del arreglo 2   y asi //susesivamente
 
 //llenado del arreglo final

   for (int i =0 ; i< veco.length;i++){
               if(pi(veco [ i ])){
               veco [ i ] = par [ i ];
              } else{
               veco [ i ] = imp [ i ];
              }
      //lo que intento hacer es mientras la posicion del vector veco sea par  me //imprima lo que esta en el arreglo de par[] y si la pos del vector veco es impar //que me imprima lo que esta en el arreglo de imp[]  a si lo pense ya que la pos 0 //es par entonces imp el valor 1 del vector par, despues es impar ahora imprimira //el valor 5 del vector impar, y asi se seguia la pos2 es par entonces imprimira 3, //la pos3 es impar entonces imprimira 7 :S pero me da error    
    }
// aqui ya se imprime la serie :S pero no imprimira nada por que estoy mal en el llenado del arreglo final :C  
         
      //Mostrando el arreglo final
    for (int i = 0; i < n; i++){
           System.out.println("vector("+i +")="+veco[ i ]);
       }
   }
       
}

Porfavor, porfavor :S no entiendo como llenar ese arreglo y solo me falta eso :S de antemano muchisismas gracias cualquier comentario , critica constructiva es aceptada contal de mejorar =)
#2
Hola amigos otra ves yo molestando y pidiendo su ayuda ya que no entiendo por que me muestra 0 (ya genere los numeros aleatorios con srand,y en la funcion longitud los leo pero en todas las ejecuciones de mi programa sale 0 ):S es un programa que te genera una cadena de num aleatorios y de ahi te cuenta cuantos numeros se generaron. Disculpen las faltas de ortografia espero me puedan orientar por que no entiendo  muy bien este tema :S gracias de antemano
void generacad(int **cadena)
{
int tam,i;
srand(time(NULL));
tam=rand()%361;
*cadena=(int *)malloc(sizeof(int)*tam);

for(i=0;i<tam;i++)
{
*(*cadena+i)=rand()%2;
}
}
int Longitud(int *cadena)
{
int i;
for(i=0;*(cadena+i)!='\0';i++)
{
return(i);
}
}
int main()
{
int *cadena;
generacad(&cadena);
printf("La longitud de la cadena es: %d", Longitud(cadena));
getch();
}
#3
Hola amigos me presento soy nuevo en el foro estudio bachillerato y me empeso a gustar esto no soy muy bueno ya que no entiendo muy muy bien :s y estoy estudiando con un libro Piensa en c Mi duda viene siendo la siguiente empese a hacer los problemas todo bien hasta que llegue con esta serie :S Un programa antes me hice la serie de [(1/1)+(1/2)+(1/3) +...+1/n] y esa todo bien pero con esta me atore ya que no entiendo muy muy bien a un los ciclos anidados queria si ver si me pueden orientar como le hago Mi unico codigo que tengo es este


#include <stdio.h>
int main()
{
float n=0,mul=0,div=0,resultado=0;
printf("Ingrese el numero que quieres calcular de la serie: ");
scanf("%f",&n);
if (n == 0){
printf("Error no existe la divicion entre 0");
}
else
{
for (int i=1;i<=n;i+=2)
{
printf("(1/%d) / \t",i);
//AQUI ES DONDE SOLO QUIERO QUE ME ORIENTEN PARA QUE ME MUESTRE
//printf("(1/%d /1/%d) * ",i);
//Y A SI ME //MUESTRE MI SERIE CON SUS PAREJAS =)
   
}

  }
printf("\nEl resultado de tu serie es: %d",resultado);
return 0;

}


Solo obtengo (1/1 ,1/3,1/5,1/7) No se como obtener  los numeros pares que son (1/2, 1/4,1/6,1/8) y a si hasta que termine y despues juntarlos  para que pueda imprimir la serie [(1/1)/(1/2)*(1/3)/(1/4)*...*/(1/n)] Me pueden orientar si ocupo un contador mas o otro ciclo se los agradeceria bastante Muchas gracias
PD: Solo ocupo que me ayuden a mostrarlos en ese orden :S y ya de ahi  yo me guio para calcular la serie.