C/Visual C - Problema en C

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 7 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema en C

Publicado por Tom (619 intervenciones) el 10/11/2018 12:52:04
¿ Qué contadores ? ¿ A veces ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 7 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Problema en C

Publicado por Vicente (3 intervenciones) el 10/11/2018 13:56:43
Los contadores a, b, c y e. Que por ejemplo en vez de aumentar b, aumenta c.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de SuperIndio
Val: 47
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Problema en C

Publicado por SuperIndio (42 intervenciones) el 15/11/2018 14:25:16
no puedo probarlo necesito el .h, proba esto:

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
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++;
                } else {
                       if(b == l2.size || (l1.data[a] < l2.data[b])) {
                            ls.data[c] = l1.data[a];
                            a++;
                       } else {
                              ls.data[c] = l1.data[a];
                              ls.data[e] = l2.data[b];
                              a++;
                              b++;
                       }
                       c++;
                       e++;
                }
        }
        return ls;
}
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar