It happens that the program I have stops.
You're supposed to read:
- Name
- Certificate
- 5 releases
- Major release
- Average number of launches
All that in a array / vector , eh open a for that runs through the 10 athletes, the for 9 cycles, in the 10th reads the name and card of the athlete number 10 and just after "reading" the first launch the program stops working.
"Proyecto.exe has stopped working"
(those launches are inside a matrix, so I use for
to save code lines)
All that happened after you changed all the initial values of each for
from 0 to 1
for (i=0 ; i<10 ; i++) ------>> for (i=1 ; i<11 ; i++)
#include <iomanip>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
using namespace std;
int main(int argc, char *argv[]) {
struct atleta {
char n[30];
float lm,l[5],prom,pr;
int ced,acc;
};
struct atleta at[10]; //Esta vaina es la estructura //
int m,i,j,k,f1,f2,c1,c2,f3,c3,f4,c4,q,w,t,e;
float lm2;
int op;
char resp='s';
while (resp=='s' || resp=='S')
{
//menu <<abre//
cout<<endl<<"Bienvenido al programa, escoga una de las siguientes opciones para continuar";
cout<<endl;
cout<<endl<<"ingresar datos de los atletas (recomendado)= 1";
cout<<endl<<"Modificar los datos de un atleta= 2";
cout<<endl<<"Mostrar un listado de todos los atletas= 3";
cout<<endl<<"Mostar los datos de un atleta segun su cedula= 4";
cout<<endl<<"Mostar los datos del ganador= 5";
cout<<endl<<"Atletas cuyo promedio es supera los 70 metros=; 6";
cout<<endl<<"Salir= 7";
for (k=1;k<2;k++)
{
op=0;
cout<<endl<<endl<<"Indique su opcion: "; cin>>op;
if(op<=0)
{
//system ("cls");
cout<<endl<<"Indique una opcion valida1";
k--;
}
else
{
}
}
//menu <<cierra//
switch (op)
{
case 1:
system ("cls");
for(i=1;i<11;i++) //leer datos de los 10 atletas <<abre// este es el original
{
cout<<endl<<"Indique el nombre del atleta Nº"<<i<<": ";
fflush(stdin);
gets (at[i].n);
for (j=1;j<2;j++) //leer y validar la cedula <<abre//
{
cout<<endl<<"Indique la cedula del atleta: ";
cin>>at[i].ced;
if (at[i].ced>0 && at[i].ced<=99999999)
{
//cout<<endl<<"Cedula Valida";
}
else
{
cout<<endl<<"Ingrese una cedula valida";
j--;
}
} //leer y validar la cedula <<cierra//
cout<<endl<<"A continuacion indique los 5 lanzamientos del atleta";
cout<<endl;
at[i].acc=0;
for (c1=1;c1<6;c1++) //leer y validar los 5 lanzamientos <<abre//
{
cout<<endl<<"ingrese el lanzamiento numero "<<c1<<": ";
cin>>at[i].l[c1]; //el for principal se ejecuta 10 veces a la 10ma vez el exe deja de funcionar justo aqui
if (at[i].l[c1]<0)
c1--;
else
{
}
at[i].acc=at[i].acc+at[i].l[c1]; //promedio de lanzamientos del atleta de turno <<abre//
} //leer y validar los 5 lanzamientos <<cierra//
cout<<at[i].acc<<endl;
at[i].prom=(at[i].acc)/5; //promedio de lanzamientos del atleta de turno <<cierra//
cout<<at[i].prom<<endl;
//calcular el lanzamiento mayor del atleta <<abre//
at[i].lm=0;
for (c2=1;c2<6;c2++)
{
if (at[i].l[c2]>at[i].lm)
at[i].lm=at[i].l[c2];
else
at[i].lm=at[i].lm;
} //calcular el lanzamiento mayor del altleta <<cierra//
} //ingresar los datos de los 10 atletas <<cierra//
break;
case 2: //modificar los datos de un atleta
cout<<endl<<"indique el numero del altleta a modificar";
cin>>m;
for (e=1;e<2;e++)
{
if (m<0 && m>10)
{
cout<<endl<<"indique un numero valido";
e--;
}
else{}
}
cout<<endl<<"indique el nombre";
cin>>at[m].n;
cout<<endl<<"indique la cedula";
cin>>at[m].ced;
for (t=1;t<2;t++)
{
if (at[t].ced>0 && at[t].ced<=99999999)
{}
else
{
cout<<endl<<"Ingrese una cedula valida";
t--;
}
};
for (f1=1;f1<6;f1++)
{
cout<<endl<<"Indique el lanzamiento Nº"<<f1<<" :";
cin>>at[m].l[f1];
if(at[m].l[f1]<0)
{
cout<<endl<<"Indique una cantidad valida";
f1--;
}
else {}
}
break;
case 3: //mostrar los datos de todos los atletas
system ("cls");
cout<<endl<<"N"<<"==Ced"<<"==L1"<<"==L2"<<"==L3"<<"==L4"<<"==L5"<<"==LM"<<"==Prom"<<endl;
for (f4=1;f4<11;f4++)
{
cout<<at[f4].n<<"=="<<at[f4].ced;
for (c4=1;c4<6;c4++)
{
cout<<"=="<<at[f4].l[c4];
}
cout<<"=="<<at[f4].lm<<"=="<<at[f4].prom<<endl;
}
break;
case 4: //datos de un atleta segun su cedula (utilizando una funcion)
system ("cls");
break;
case 5: //atleta ganador y sus datos
system ("cls");
lm2=0;
for (f3=1;f3<11;f3++)
{
if (at[f3].lm>lm2)
lm2=at[f3].lm;
else
lm2=lm2; //lanzamiento mayor calculado//
}
for(f2=1;f2<11;f2++)
{
if(lm2==at[f2].lm)
{
cout<<endl<<"Atleta ganador";
cout<<at[f2].n<<"="<<at[f2].ced;
for (c3=1;c3<6;c3++)
{
cout<<"="<<at[f2].l[c3];
}
cout<<"="<<at[f2].lm;
cout<<"="<<at[f2].prom;
}
else {}
}
break;
case 6: //atletas con un promedio mayor a 70
system ("cls");
for(q=1;q<11;q++)
{
at[q].pr=0;
if(at[q].prom>70)
{
at[q].pr=at[q].prom;
}
else{}
}
for (w=1;w<11;w++)
{
if(at[w].pr>70)
{
cout<<at[w].n<<"="<<at[w].ced;
for (c4=1;c4<6;c4++)
{
cout<<"="<<at[w].l[c4];
}
cout<<"="<<at[w].lm;
cout<<"="<<at[w].prom<<endl;
}
else{}
}
break;
case 7: //salir
system ("cls");
cout<<endl;
break;
default:
system ("cls");
cout<<endl<<"Indique una opcion valida"<<endl;
} //switch case <<cierra//
cout<<endl<<"para volver al menu presione 's', para salir del programa presione cualquier otra tecla"; cin>>resp;
system ("cls");
} //while <<cierra//
return 0;
}