Dev - C++ - "programa" .exe dejo de funcionar. Ayuda por favor! Urgente

 
Vista:
sin imagen de perfil

"programa" .exe dejo de funcionar. Ayuda por favor! Urgente

Publicado por Federico (4 intervenciones) el 27/07/2016 18:02:31
Buenas gente. Estuve haciendo este programa y si bien compila, a la hora de ejecutarlo cuando ingreso el numero de ejemplar, me salta un mensaje que dice "nombre programa..." .exe dejo de funcionar.

Lo revise pero no encuentro el o los errores (es un tp para la facultad y si no lo entrego no firmo la materia) Alguno me podría decir el o o los errores de esto, por favor?

Se que el foro es de C++, pero el lenguaje de esto es C.

Muchas 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
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define C1 5 // para los de 3870
#define C2 10 //para los de 450
void prestamo (int tienenlib[], char socios[][10]);
int main()
{
 
    int i;
    int j;
    int l;
    int k;
    int mayor;
    int tot=-1;
    int tota=-1;
    char codsoc[10];
    int nejemplar[3];
    char codlib [7];
    char codigolibro[3870][7];
    int numeroejemplar [3870];
    char titulo[3870][36];
    char autor[3870][31];
    char libro [3870][7];
    int cantpres[3870];
    int canttotal[3870];
    char socios [450][10];
    int tienenlib [3870];
    int senial[3870];
    int canttot [3870];
    for( i=0; i<C1; i++)
    {
        numeroejemplar[i]=0;
        senial [i]=0;
};
    for( i=0; i< C2; i++ )
    {
        socios[i];
        tienenlib[i]=0;
};
    for( i=0; i< C1; i++ )
    {
        printf("Ingrese Codigo de libro, Numero de ejemplar, Titulo y Autor\n");
 
        scanf("%s%d%s%s", codigolibro[i], &numeroejemplar[i], titulo[i], autor[i]);
 
        for( j=0; j<C1; j++ )
        {
            if (senial [i]!=0)
            {
                }
                else
                {
                        if (strcmp (codigolibro[i],libro [j])==0)
                {   canttot[j]++;
                    }
                    else
                    {
                        l=0;
                        while ((strcmp(codigolibro[i],libro[j])!=0) && (l<=tot))
                        {
                            l++;
                        };
                            if (l>tot)
                            { strcpy (libro[l],codigolibro[i]);
 
                            canttot[l]++;
 
                            tot++;};
                        };
                    };
                    senial [i]++;
    };
};
 
 printf("Ingrese codigo de socio, codigo de libro y numero de ejemplar");
 scanf("%s %s %d", codsoc, codlib, nejemplar);
 
 while (strcmp (codsoc, "zzz")!=0)
{
    if(nejemplar==0)
        {
            for (i=0; i<C1; i++)
            {
                if (strcmp (codlib,libro[i])==0)
                {
                    if (canttot[i]!=0)
 
                        { k=0;
                          while(strcmp(codsoc,socios[k])!=0 && (k<=tota)) {k++;};
                        if(k>tota)
                        {strcpy (socios[k],codsoc);
                         tota++;
                        };
                        tienenlib[k]++;
                    for (j=0; j<C2; j++)
                       {
                            if(strcmp(socios[j],codsoc)==0)
                            { if (tienenlib[j]>3)
                             {printf("No puede retirar mas de tres libros\n");
                             tienenlib[j]--;
                             }
                             else {canttot[i]--;
                                    cantpres[i]++;
                                  }
                            };
                       }
                    }
                    else { printf("Todos los ejemplares del libro", codigolibro[i], "estan prestados\n")
                         ;}
                    }
                };
 
            }
            else {
                    for (i=0; i<C1; i++)
                        {
                            if(strcmp (codlib,libro[i])==0)
                            {
                                canttot[i]++;
                            };
                        };
                 for (i=0; i<C2; i++)
                    {
                        if (strcmp(codsoc,socios[i])!=0)
                            {tienenlib[i]--;
                            };
                    };
                 };
//prestamo(tienenlib[0], socios [0][10]);
printf("Ingrese codigo de socio, codigo de libro y numero de ejemplar\n");
scanf ("%s %s %d", codsoc, codlib, nejemplar);
};
 
mayor=cantpres[0];
 
        for ( i=1; i<C1; i++)
        {
            if(cantpres[i]>mayor)
                {
                    mayor = cantpres[i];
                    }
                    else {};
 
            };
printf("El libro que mas se presto es",mayor);
system ("PAUSE");
return 0;
};
 
 
void prestamo (int tienenlib[], char socios[][10]) //creamos la funcion prestamo 
 {int a;
 for (a=0; a<C2; a++)
 {
        if(tienenlib[a]>0)
        {
            printf("El socio", socios[a], "tiene", tienenlib[a], "en prestamo\n");
        }
            else {};
        };
    };
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

"programa" .exe dejo de funcionar. Ayuda por favor! Urgente

Publicado por dario (44 intervenciones) el 29/07/2016 16:03:46
Hola, porque pones puntos y comas (;) despues de las llaves {;
A mi parecer las llaves no llevan puntos y comas (;)
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

"programa" .exe dejo de funcionar. Ayuda por favor! Urgente

Publicado por Federico (4 intervenciones) el 30/07/2016 03:43:54
A que parte te referís precisamente? Los puntos y coma (;) los pongo cada vez que termina una linea, si no no compila
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

"programa" .exe dejo de funcionar. Ayuda por favor! Urgente

Publicado por dario (44 intervenciones) el 30/07/2016 05:42:38
En tu codigo, abajo, te dejo los comentarios de dichas lineas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void prestamo (int tienenlib[], char socios[][10]) //creamos la funcion prestamo 
 
 {int a;
 
 for (a=0; a<C2; a++)
 
 {
 
        if(tienenlib[a]>0)
 
        {
 
            printf("El socio", socios[a], "tiene", tienenlib[a], "en prestamo\n");
 
        }
 
            else {};
 
        }; //este punto y coma, porque al final de la llave?
 
    }; //este tambien.
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

"programa" .exe dejo de funcionar. Ayuda por favor! Urgente

Publicado por Federico (4 intervenciones) el 30/07/2016 17:47:29
Ya lo saque. Pero se superponen los printf ahora
printf
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