Off Topic - Error en mi codigo

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 8 puestos en Off Topic (en relación al último mes)
Gráfica de Off Topic

Error en mi codigo

Publicado por Jazmin (1 intervención) el 10/11/2020 13:58:23
Hola, tengo un error en mi codigo C y no se donde esta, alguien me podria dar una mano?, 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
75
76
77
#include <stdio.h>
 
#include <stdlib.h>
 
#define DIM 10
 
 
 
int main()
 
{for (int i=0; i<45;i++){printf("-");}
 
    int vA[DIM] = {30,70,00,50,90,80,20,40,60,10};
 
    int tV = sizeof vA[0];
 
    int longitud = sizeof vA / tV;
 
    printf("\nMostrando Vector antes de ordenar\n");
 
    mostrar(vA);  // Funcion local
 
for (int i=0; i<45;i++){printf("-");}
 
    qsort("-", longitud, tV, fCompara);
 
 
 
    printf("\nMostrando Vector ordenado de menor a mayor\n")
 
    mostrar();  // Funcion local
 
    for (int i=0; i<45;i++){printf("-");}
 
    printf("\n \nPROGRAMA TERMINADO \n \n \n");
 
    system("Pause");
 
    return 0;
 
}
 
int fCompara(const void *a, const void *b) {
 
 
 
    int vA = *(int *) a;
 
    int vB = *(int *) b;
 
 
 
    return vB - vA;
 
 
 
}
 
void mostrar(int *vA){
 
 
 
    printf("%d: %d \n",k, *(vA+k));
 
 
 
}
 
// vA -> Vector A
 
// tV -> Tamaño del Vector A
 
// longitud -> longitud del vector A
 
// fCompara -> Funcion que compara para Ordenar en forma ascendente o descendente
 
// mostrar -> funcion local para mostrar un vector
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Alejandro Andrade

Error en mi codigo

Publicado por Alejandro Andrade (50 intervenciones) el 28/03/2023 22:56:54
Hay varios errores en el código que has compartido. Aquí te indico algunos de ellos:

1. No se ha declarado la función 'fCompara()' ni 'mostrar()' antes de su uso. Debes declarar estas funciones antes de 'main()' o puedes definirlas antes de 'main()'.

2. La función mostrar() espera un argumento de tipo 'int *vA', pero no se le está pasando ningún argumento cuando se la llama en 'main()'. Debes pasar el vector 'vA' como argumento cuando llames a la función.

3. La función 'qsort()' espera un puntero a la primera posición del vector, pero estás pasando una cadena '"-"' como primer argumento. Debes pasar un puntero a la primera posición del vector 'vA' en su lugar.

4. En la función 'mostrar()', la variable 'k' no está declarada ni inicializada. Deberías usar una variable 'i' para acceder a los elementos del vector.

Aquí te dejo una versión corregida del código:

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
#include <stdio.h>
#include <stdlib.h>
#define DIM 10
 
int fCompara(const void *a, const void *b);
void mostrar(int *vA);
 
int main() {
    for (int i = 0; i < 45; i++) {
        printf("-");
    }
 
    int vA[DIM] = {30, 70, 00, 50, 90, 80, 20, 40, 60, 10};
    int tV = sizeof vA[0];
    int longitud = sizeof vA / tV;
 
    printf("\nMostrando Vector antes de ordenar\n");
    mostrar(vA);
 
    for (int i = 0; i < 45; i++) {
        printf("-");
    }
 
    qsort(vA, longitud, tV, fCompara);
 
    printf("\nMostrando Vector ordenado de menor a mayor\n");
    mostrar(vA);
 
    for (int i = 0; i < 45; i++) {
        printf("-");
    }
 
    printf("\n \nPROGRAMA TERMINADO \n \n \n");
    system("Pause");
    return 0;
}
 
int fCompara(const void *a, const void *b) {
    int vA = *(int *) a;
    int vB = *(int *) b;
    return vA - vB;
}
 
void mostrar(int *vA) {
    for (int i = 0; i < DIM; i++) {
        printf("%d: %d \n", i, *(vA + i));
    }
}

Espero que esto te ayude a resolver el problema en tu código.
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