Dev - C++ - Error el programa dejo de funcionar

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Error el programa dejo de funcionar

Publicado por Pedro (1 intervención) el 03/10/2018 04:32:14
mi programa compila y ejecuta bien ero cuando valida una cédula que ya esta cuando voy a ingresar otra me da el error :'( no se que sera el lenguaje es C

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
#include <stdio.h>
#define N 4
//Declaricon de funciones
void datos();
int validacedula();
void imprimirerror();
float mayorn();
void imprimir();
void mostrarmayores();
 
//Declaracion de variables globales
int cedula[N],i, posicion;
char nombre[N][50], materia[N][10];
float notas[N], mayor;
 
 
 
//Inicio de programa
 
int main()
{
	printf("\t\tBienvenido\n");
	datos();
	mayorn();
    imprimir();
    mostrarmayores();
 
getchar();
return 0;
}
 
 
//Captura de los datos	
void datos()
{   int aux1=0;
    float aux2=0;
 
    for(i=0;i<N;)
    {
		printf("\nIntroduzca su cedula ");
		scanf("%i", &aux1);
 
		if (validacedula(aux1)==-1){          //Validacion de la cedula se envia aux a funcion
 
        cedula[i]=aux1;
 
		printf("Ingrese su nombre ");
		scanf("%s",nombre[i]);
 
		 printf("Ingrese su nota ");
		 scanf("%f", &aux2);
		 while ((aux2<0)||(aux2>20)){          //Validación de la nota
 
		  printf("Error debe intrducir una nota entre 0 y 20\n");
		  printf("Ingrese su nota ");
		  scanf("%f", &aux2);
 
    	}
		 notas[i]=aux2;
 
		 printf("Ingrese la materia ");
		 scanf("%s", materia[i]);
 
         i++;
		}
        else {
 
         printf("\nYa existe esa cedula\n");
         imprimirerror();
		 i--;
        }
    }
}
 
 
int validacedula(int aux1){   //Se recorre el arreglo para encontrar el valor de aux
    int k, posicion=-1;
    for (k=0;k<N;k++){
 
        if (cedula[k]==aux1){
          posicion=k;
          break;
        }
 
    }
 
    return (posicion);
 
}
 
 
void imprimirerror(){  //Se imprimen los datos de la cedula que ya estaba
	printf("Cedula \t\tNombre \tNotas \tMateria \n");
	for (i=0;i<N;i++){
 
		printf("%i \t\t%s \t%.0f \t%s\n",cedula[posicion],nombre[posicion],notas[posicion],materia[posicion]);
		break;
	}
 
}
 
 
 
float mayorn(){ //Se busca la nota mayor en el arreglo
 
	for (i=0;i<N;i++){
 
		if (notas[i]>mayor)
 
		mayor=notas[i];
 
	}
    return (mayor);
}
 
 
void imprimir() {
	printf("\n\t\t\tLista de datos\n");
	printf("Cedula \t\tNombre \tNotas \tMateria \t\tCondicion\n");
 
	for(i=0;i<N;i++){
 
		if(notas[i]<10)
		printf("%i \t\t%s \t%.0f \t%s  \t\t(Reprobado)\n",cedula[i],nombre[i],notas[i],materia[i]);
 
		else
 
		printf("%i \t\t%s \t%.0f \t%s  \t\t(Aprobado)\n",cedula[i],nombre[i],notas[i],materia[i]);
	}
 
    printf("\nLa mayor nota es: %.0f\n", mayor);
 
}
 
    void mostrarmayores(){
 
	printf("\n\t\t\tPersonas con notas mayores\n");
 
	for(i=0;i<N;i++){
 
		if (notas[i]==mayor)
		printf("%i \t\t%s  \t%.0f \t%s\n",cedula[i],nombre[i],notas[i],materia[i]);
 
	}
 
}
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