Dev - C++ - cambiar estructura a subprogramas

   
Vista:

cambiar estructura a subprogramas

Publicado por tathiana (5 intervenciones) el 23/04/2017 17:34:12
hola

tengo este código

nuestro maestro no nos explico mucho sobre las funciones

me podrían ayudar como cambio la estructura de este código

y anexo estas funciones

1
2
3
4
inicializar()
votacion()
ordenar()
imprimir()

este es el 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
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
#include <stdio.h>   // printf(), scanf()
#include <ctype.h>   // 
#include <string.h>  // strcpy()
 
#define MAX_CAND 5
#define MAX_CHARS 3
#define MAX_VOTOS 10
 
 
 
 inicializar()
 votacion()
 ordenar()
 imprimir()
 
int main(void) {
    char candidatos[MAX_CAND][MAX_CHARS] = { "C1", "C2", "C3", "C4", "VB" };
    int votos[MAX_CAND] = { 0 };
 
    int cont = 0;
    while (cont < MAX_VOTOS) {
        // Lee los votos válidos y los almacena en 'votos'.
        int voto = 0;
 
        printf(
            "VOTE POR LOS SIGUIENTES CANDIDATOS:\n"
            "1=> Candidato 1 \n"
            "2=> Candidato 2 \n"
            "3=> Candidato 3 \n"
            "4=> Candidato 4 \n"
            "5=> Voto Blanco \n"
            "voto = "
        );
        scanf("%d", &voto);
 
        if (voto > 0 && voto <= MAX_CAND) {
            ++votos[voto - 1];
            ++cont;
        } else {
            printf("\n* Opcion desconocida *\n");
        }
 
        // Verifica si el usuario desea continuar o terminar la votación.
        char continuar = '\0';
        if (cont < MAX_VOTOS) {
            while (continuar != 's' && continuar != 'n') {
                printf("\nContinuar(s) o Salir(n)? ");
                scanf("\n%c", &continuar);
                continuar = (char)(continuar);
 
            }
        } else {
            continuar = 'n';
        }
 
        if (continuar == 'n') {
            break;
        }
        printf("\n");
    }
 
    // Ordenamiento descendente de los votos,
    for (int i = 1; i < MAX_CAND; i++) {
        char auxCandidato[MAX_CHARS] = { '\0' };
        strcpy(auxCandidato, candidatos[i]);
        int auxVoto = votos[i];
        int j = i - 1;
        while (j >= 0 && auxVoto < votos[j]) {
            votos[j + 1] = votos[j];
            strcpy(candidatos[j + 1], candidatos[j]);
            --j;
        }
        votos[j + 1] = auxVoto;
        strcpy(candidatos[j + 1], auxCandidato);
    }
 
    // Muestra los resultados.
    printf("\nResultados:\n");
    for (int i = MAX_CAND - 1; i >= 0; --i) {
        printf("%s = %d\n", candidatos[i], votos[i]);
    }
 
    return 0;
}
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

cambiar estructura a subprogramas

Publicado por agustin (522 intervenciones) el 24/04/2017 09:26:45
Prácticamente estaba hecho:
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
#include <stdio.h>   // printf(), scanf()
#include <ctype.h>   // 
#include <string.h>  // strcpy()
 
#define MAX_CAND 5
#define MAX_CHARS 3
#define MAX_VOTOS 10
 
void inicializar(int votos[MAX_CAND] )
{
	int i;
	for (i=0;i <MAX_CAND;i++)
		votos [i]=0;
}
 
void votacion(int votos[MAX_CAND] )
{
	int cont = 0;
    while (cont < MAX_VOTOS) {
        // Lee los votos válidos y los almacena en 'votos'.
        int voto = 0;
 
        printf(
            "VOTE POR LOS SIGUIENTES CANDIDATOS:\n"
            "1=> Candidato 1 \n"
            "2=> Candidato 2 \n"
            "3=> Candidato 3 \n"
            "4=> Candidato 4 \n"
            "5=> Voto Blanco \n"
            "voto = "
        );
        scanf("%d", &voto);
 
        if (voto > 0 && voto <= MAX_CAND) {
            ++votos[voto - 1];
            ++cont;
        } else {
            printf("\n* Opcion desconocida *\n");
        }
 
        // Verifica si el usuario desea continuar o terminar la votación.
        char continuar = '\0';
        if (cont < MAX_VOTOS) {
            while (continuar != 's' && continuar != 'n') {
                printf("\nContinuar(s) o Salir(n)? ");
                scanf("\n%c", &continuar);
                continuar = (char)(continuar);
 
            }
        } else {
            continuar = 'n';
        }
 
        if (continuar == 'n') {
            break;
        }
        printf("\n");
    }
}
 
void ordenar(int votos[MAX_CAND], char candidatos[MAX_CAND][MAX_CHARS])
{
	// Ordenamiento descendente de los votos,
    for (int i = 1; i < MAX_CAND; i++) {
        char auxCandidato[MAX_CHARS] = { '\0' };
        strcpy(auxCandidato, candidatos[i]);
        int auxVoto = votos[i];
        int j = i - 1;
        while (j >= 0 && auxVoto < votos[j]) {
            votos[j + 1] = votos[j];
            strcpy(candidatos[j + 1], candidatos[j]);
            --j;
        }
        votos[j + 1] = auxVoto;
        strcpy(candidatos[j + 1], auxCandidato);
    }
}
 
void imprimir(int votos[MAX_CAND], char candidatos[MAX_CAND][MAX_CHARS])
{
	// Muestra los resultados.
    printf("\nResultados:\n");
    for (int i = MAX_CAND - 1; i >= 0; --i) {
        printf("%s = %d\n", candidatos[i], votos[i]);
    }
}
 
int main(void) {
    char candidatos[MAX_CAND][MAX_CHARS] = { "C1", "C2", "C3", "C4", "VB" };
    int votos[MAX_CAND];
 
    inicializar (votos);
    votacion (votos);
    ordenar (votos, candidatos);
    imprimir (votos, candidatos);
 
    return 0;
}
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

cambiar estructura a subprogramas

Publicado por tathiana (5 intervenciones) el 21/05/2017 21:03:36
Amigo!

una pregunta existencial

eso esta sin funciones globales cierto???
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