-
Notifications
You must be signed in to change notification settings - Fork 1
/
carrera de automoviles.c
139 lines (139 loc) · 2.95 KB
/
carrera de automoviles.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
#include<stdio.h>
#include<conio.h>
#include<locale.h>
#define tope 60
int cargartiempos(float[],int[]);
int posicionminimo(float[],int);
int posicionmaximo(float[],int);
float promedio(float[],int);
int superanpromedio(float[],int,float);
int autosnoparticipan(int[],int);
void mostrarautosnoparticipan(int[],int);
void main()
{
setlocale(LC_CTYPE,"Spanish");
int ce,posmin,posmax,sup,aux[tope],ceros;
float tiempos[tope],pr;
printf(" \n CARRERA DE AUTOMÓVILES \n");
printf("\n Ingrese los tiempos de clasificación de los automóviles \n (usted puede ingresar los datos de hasta 60 vehículos)");
printf("\n\n Si alguno de los autos no participara de la carrera, \n ingrese un tiempo igual a cero.");
printf("\n Y un tiempo negativo finalizará la carga de datos. \n");
ce=cargartiempos(tiempos,aux);
if(ce!=0)
{
posmin=posicionminimo(tiempos,ce);
printf("\n El ganador de la carrera es el auto número %d \n",posmin+1);
posmax=posicionmaximo(tiempos,ce);
printf("\n El peor tiempo de clasificación lo tiene el auto número %d \n",posmax+1);
pr=promedio(tiempos,ce);
sup=superanpromedio(tiempos,ce,pr);
printf("\n %d autos superan el tiempo promedio de clasificación \n",sup);
ceros=autosnoparticipan(aux,ce);
if(ceros!=0)
{
printf("\n Los autos que no participan de la carrera son: \n");
mostrarautosnoparticipan(aux,ce);
}
else
printf("\n No hay autos que no hayan participado en la carrera \n \n ");
}
else
printf("\n Ningún auto participó de la carrera \n\n");
getch();
}
int cargartiempos(float tmp[],int aux[])
{
int i,band;
float tiempo;
i=0;
band=0;
printf("\n Ingrese el tiempo del auto %d: \n\t",i+1);
scanf("%f",&tiempo);
while(i<tope&&tiempo>=0)
{
tmp[i]=tiempo;
if(tiempo!=0)
{
aux[i]=1;
band=1;
}
else
aux[i]=0;
i++;
printf("\n Ingrese el tiempo del auto %d: \n\t",i+1);
scanf("%f",&tiempo);
}
if(band!=0)
return i;
else
return band;
}
int posicionminimo(float t[],int ce)
{
int band,p,i;
band=0;
for(i=0;i<ce;i++)
{
if(band==0)
{
if(t[i]>0)
{
p=i;
band=1;
}
}
else
if(t[i]>0&&t[i]<t[p])
p=i;
}
return p;
}
int posicionmaximo(float t[],int ce)
{
int max,i;
max=0;
for(i=0;i<ce;i++)
if(t[i]>t[max])
max=i;
return max;
}
float promedio(float t[],int ce)
{
int cont,i;
float acum,pr;
cont=0;
acum=0;
for(i=0;i<ce;i++)
if(t[i]>0)
{
cont++;
acum+=t[i];
}
pr=acum/cont;
return pr;
}
int superanpromedio(float t[],int ce,float pr)
{
int i,cont;
cont=0;
for(i=0;i<ce;i++)
if(t[i]>pr)
cont++;
return cont;
}
int autosnoparticipan(int v[],int ce)
{
int i,cont;
cont=0;
for(i=0;i<ce;i++)
if(v[i]==0)
cont++;
return cont;
}
void mostrarautosnoparticipan(int v[],int ce)
{
int i;
for(i=0;i<ce;i++)
if(v[i]==0)
printf("\n\t %d \n",i+1);
}