• Sábado 14 de Diciembre de 2024, 15:06

Autor Tema:  Intercalar numeros de 2 vectores  (Leído 7233 veces)

elpis

  • Nuevo Miembro
  • *
  • Mensajes: 9
  • Nacionalidad: 00
    • Ver Perfil
Intercalar numeros de 2 vectores
« en: Viernes 29 de Julio de 2011, 00:09 »
0
El problema es el siguiente, realizar 3 vectores, vector 1 y 2 son para ingreso de numeros, el 3ero es para intercalan los numeros de los dos primeros.

este es el codigo:
Código: [Seleccionar]
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
void vectores();
void vectores(){
int *vector1,*vector2,*vector3;
int pos=0,i=0,n=0,h=0;
clrscr();
vector1=(int*)calloc(1,sizeof(float));
if(vector1==NULL){
printf("\nNo hay memoria");
getch();
}else{
do{
printf("\n\tIngrese elemento del vector (0 para salir)");
scanf("%i",&n);
flushall();
if(n!=0){
vector1[pos]=n;
pos++;
vector1=(int*)realloc(vector1,sizeof(int));
if(vector1==NULL){
printf("\n\tNo hay memoria para proximo numero");
getch();
break;
}
}
}while(n!=0);
}
clrscr();
vector2=(int*)calloc(pos,sizeof(int));
for(i=0;i<=pos-1;i++){
printf("\n\tIngrese elemento 2do vector\t");
scanf("%i",&vector2[i]);
flushall();
}
vector3=(int*)calloc(pos*2,sizeof(int));
for(i=0;i<=pos-1;i++){
vector3[h]=vector1[i];
h=h+2;
}
h=1;
for(i=0;i<=pos-1;i++){
vector3[h]=vector2[i];
h=h+2;
}
pos=(pos-1)*2;
clrscr();
printf("\n\tvector 3:");
for(i=0;i<=pos;i++)
printf(" %i ",vector3[i]);
free(vector1);
free(vector2);
free(vector3);

}
void main(){
clrscr();
vectores();
getch();
}

El error se da cuando al mostrar el 3er vector, los primeros numeros diria que se intercalan bien, pero ya los ultimos parareces cualquier numero.

gracias