Problema en C
Publicado por Vicente (3 intervenciones) el 10/11/2018 11:48:15
Cuando ejecuto el debug me aumentan los contadores a veces de dos en dos. Espero respuesta, Gracias ^^
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
/*
* Ejercicio4.cpp
*
* Created on: 1 nov. 2018
* Author: vlope
*/
#include "Ejercicio4.h"
#include <stdio.h>
#include <stdlib.h>
int_list create_int_list(int * data, int tam, int size){
int_list r = {tam,size,data};
return r;
}
int_list empty_int_list(int tam){
int * d = (int *) malloc(tam*sizeof(int));
int_list r = {tam,0,d};
return r;
}
void imprime_list_int(int_list ls, char * s, char * p, char * f) { //problema 50
int n = 0;
printf("%s", p);
for (int i = 0; i < ls.size; i++) {
double e = ls.data[i];
if (n == 0){
printf("%.2lf", e);
n++;
} else
printf("%s%.2lf", s, e);
}
printf("%s", f);
}
int_list fusionListasOrdenadasC(int_list l1, int_list l2){
int a = 0;
int b = 0;
int c = 0;
int e = 1;
int y[] = {};
int_list ls = create_int_list(y,l1.size + l2.size,l1.size + l2.size);
while(c <= (l1.size + l2.size) - 1) {
if(a == l1.size || (l1.data[a] > l2.data[b])){
ls.data[c] = l2.data[b];
b = b + 1;
} else if(b == l2.size || (l1.data[a] < l2.data[b])) {
ls.data[c] = l1.data[a];
a = a + 1;
} else {
ls.data[c] = l1.data[a];
ls.data[e] = l2.data[b];
a = a + 1;
b = b + 1;
}
c = c + 1;
e = e + 1;
}
return ls;
}
int main (int argc, char** argv) {
int z[] = {1,3,5,7};
int_list l1 = create_int_list(z,4,4);
int x[] = {2,4,6};
int_list l2 = create_int_list(x,3,3);
imprime_list_int(fusionListasOrdenadasC(l1,l2),",","{","}");
printf("\n");
}
Valora esta pregunta


0