AYUDA LISTAS
Publicado por Facundo (1 intervención) el 06/11/2019 10:44:17
Hola, les muestro este código que consiste en cargar dos listas con números, en los cuales debo obtener los múltiplos de 2 y cargarlos en una 3er lista ordenada de forma ascendente.
Toda va bien, compila perfecto, pero la carga de la 3er lista no la muestra, no sé. Revísenla si pueden y arreglenla, agreguen sus comentarios para así aprender un poco más, ya que es poco mi conocimiento sobre como se maneja el lenguaje.
Muchas gracias, saludos.
Toda va bien, compila perfecto, pero la carga de la 3er lista no la muestra, no sé. Revísenla si pueden y arreglenla, agreguen sus comentarios para así aprender un poco más, ya que es poco mi conocimiento sobre como se maneja el lenguaje.
Muchas gracias, saludos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <stdio.h>
#include <stdlib.h>
typedef struct snodo{
int nro;
struct snodo *prox;
}tnodo;
typedef tnodo *tpuntero;
void insertarEnLista1 (int e);
void insertarEnLista2 (int e);
void cargarlista3 ();
void imprimirLista ();
tpuntero *prim3;
tpuntero *prim;
tpuntero *prim2;
tpuntero *p1;
tpuntero *p2;
int main(){
int e,a,b;
tpuntero prim;
prim=NULL;
tpuntero prim2;
prim2=NULL;
int opc;
do{
printf("1-Cargar lista 1\n");
printf("2-Cargar lista 2\n");
printf("3-Mostrar multiplos de 2 que hay entre lista 1 y lista 2 ordenado de forma ascendente\n");
printf("0-Salir\n");
scanf("%d",&opc);
switch (opc){
case 1: insertarEnLista1(e);
break;
case 2: insertarEnLista2(e);
break;
case 3: cargarlista3(a, b);
imprimirLista();
break;
}
}while(opc!=0);
}
void insertarEnLista1 (int e){
tpuntero prim;
printf("Ingrese elementos, -1 para terminar: ");
scanf("%d",&e);
while(e!=-1){
tpuntero nuevo;
nuevo = malloc(sizeof(tnodo));
nuevo->nro = e;
nuevo->prox = prim;
prim = nuevo;
printf ("Ingresado correctamente");
printf ("\n");
printf("Ingrese elementos, -1 para terminar: ");
scanf("%d",&e);
}
}
void insertarEnLista2 (int e){
tpuntero prim2;
printf("Ingrese elementos, -1 para terminar: ");
scanf("%d",&e);
while(e!=-1){
tpuntero nuevo;
nuevo = malloc(sizeof(tnodo));
nuevo->nro = e;
nuevo->prox = prim2;
prim2 = nuevo;
printf ("Ingresado correctamente");
printf ("\n");
printf("Ingrese elementos, -1 para terminar: ");
scanf("%d",&e);
}
}
void cargarlista3 (int a, int b){
tpuntero prim;
tpuntero prim2;
tpuntero p1;
tpuntero p2;
p1=NULL;
p2=NULL;
p1=prim;
p2=prim;
tpuntero nuevo;
nuevo = malloc(sizeof(tnodo));
while ((p2->prox !=NULL) && (p1->prox !=NULL)){
if ((p1->nro % 2) ==0){
a=p1->nro;
}
if((p2->nro %2)==0){
b=p2->nro;
}
if (a<b){
nuevo->nro=b;
nuevo->prox=*prim3;
*prim3=nuevo;
}else {
nuevo->nro=a;
nuevo->prox=*prim3;
*prim3=nuevo;
}
p2=p2->prox;
p1=p1->prox;
}
if (prim2==NULL){
printf("ERROR, LISTA 2 VACIA");
}
if (prim==NULL){
printf("ERROR, LISTA 1 VACIA");
}
}
void imprimirLista(){
tpuntero prim3;
while( prim3 != NULL){
printf("%4d",prim3->nro);
prim3 = prim3->prox;
}
}
Valora esta pregunta


0