-
Notifications
You must be signed in to change notification settings - Fork 1
/
busqueda secuencial de alumnos por dni.c
87 lines (87 loc) · 1.92 KB
/
busqueda secuencial de alumnos por dni.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
#include<stdio.h>
#include<conio.h>
#include<locale.h>
#define tope 100
int cargarvectores(int[],char[][30]);
int busquedasecuencial(int[],int,int);
int validadato(int,int,int);
void main()
{
setlocale(LC_CTYPE,"Spanish");
int vdoc[tope],cant,pos,dni;
char vnom[tope][30];
printf("\n Realice la carga de los DNI y los nombres \n de los alumnos del curso: \n Se finaliza la carga con DNI igual a cero\n");
cant=cargarvectores(vdoc,vnom);
printf("\n Realice la búsqueda de alumnos por DNI \n Se finaliza la búsqueda con DNI igual a cero\n");
do
{
printf("\n Ingrese un DNI para ver si pertenece al curso:\n\n\t");
scanf("%d",&dni);
}
while(!validadato(dni,0,100000000));
while(dni!=0)
{
pos=busquedasecuencial(vdoc,cant,dni);
if(pos!=-1)
printf("\n\n El nombre de la persona con DNI %d es: %s \n",dni,vnom[pos]);
else
printf("\n\n No existe un alumno con ese DNI en el curso \n");
do
{
printf("\n Ingrese un DNI para ver si pertenece al curso:\n\n\t");
scanf("%d",&dni);
}
while(!validadato(dni,0,100000000));
}
getch();
}
int cargarvectores(int vdoc[],char vnom[][30])
{
int dni,i;
char nomb[30];
i=0;
do
{
printf("\n\n Ingrese un DNI de un alumno del curso:\n\n\t");
fflush(stdin);
scanf("%d",&dni);
}
while(!validadato(dni,0,100000000));
while(dni!=0 && i<tope)
{
vdoc[i]=dni;
fflush(stdin);
printf("\n Ingrese el nombre del alumno con el DNI ingresado, máximo 30 caracteres:\n\n\t");
gets(nomb);
strcpy(vnom[i],nomb);
i++;
do
{
printf("\n\n Ingrese un DNI de un alumno del curso:\n\n\t");
fflush(stdin);
scanf("%d",&dni);
}
while(!validadato(dni,0,100000000));
}
return i;
}
int busquedasecuencial(int vdoc[],int ce,int x)
{
int p,i;
p=-1;
i=0;
while(i<ce && p==-1)
{
if(vdoc[i]==x)
p=i;
i++;
}
return p;
}
int validadato(int x,int li,int ls)
{
if(x>=li && x<=ls)
return 1;
else
return 0;
}