Soy nuevo en C y estoy empezando a programar algunas cosas basicas, estoy intentando hacer un codigo que haga:
Escriba un programa que lea la temperatura en grados Celsius al mediodía, durante todos los días de un mes, y luego informar la temperatura promedio mensual, así como el día más caluroso y el más frío, así como brindar la opción de consulta de las temperaturas guardadas hasta el momento, y modificar ó eliminar alguna temperatura mal introducida.
pero al querer cargar al vector la temperatura del dia 12 del mes siempre se me rompe el programa...
podrian ayudarme? les agradezco.
Código:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int dias=0;
int resp_menu=0, resp_mes=0, x=0,indmayor=0,indmenor=0,auxind=0;
float grados[dias],acum=0,mayor=0, menor=100, temp_prom=0,nuevatemp=0,viejatemp=0;
char resptemp;
do
{
printf("MENU DE OPCIONES \n");
printf("1. Cargar datos \n") ;
printf("2. Borrar datos \n") ;
printf("3. Consultar temperaturas\n") ;
printf("4. Modificar temperaturas\n") ;
printf("5. Salir\n") ;
scanf("%i",&resp_menu) ;
switch(resp_menu)
{
case 1:
system("cls") ;
printf("de que mes desea ingresar temperaturas?....\n");
printf("1.Enero/Marzo/Mayo/Julio /Agosto/Octubre/Diciembre\n ") ;
printf("2.Abril/Junio/Septiembre/Noviembre\n") ;
printf("3.Febrero\n") ;
scanf("%i",&resp_mes) ;
if (resp_mes==1)
{
dias=31;
}
else if (resp_mes==2)
{
dias=30;
}
else
{
dias=28;
}
printf("DIAS QUEDO CON: %i",dias);
system("pause");
system("cls");
for (x=0;x<dias;x++) //se supone que el vector grados tiene "dias" posiciones pero me salta error en 12
{
printf("ingrese temperatura del dia %i: \n", x+1) ;
fflush(stdin);
scanf("%f",&grados[x]);
acum=acum+grados[x];
if (grados[x]<menor)
{
menor=grados[x];
indmenor=x;
}
if (grados[x] >mayor)
{
mayor=grados[x] ;
indmayor=x;
}
}
temp_prom=acum/dias;
system("pause");
break;
case 2:
for (x=0;x<dias;x++)
{
grados[x]=0;
menor=0;
mayor=0;
temp_prom=0;
}
printf("datos borrados\n");
system("pause");
break;
case 3:
printf("TABLA DE TEMPERATURAS DEL MES\n");
printf("=================================\n");
printf("DIA TEMPERATURA\n");
for (x=0;x<dias;x++)
{
printf("%i %.2f\n",x+1,grados[x]);
}
printf("la temperatura promedio fue: %.2f\n",temp_prom);
printf("la temperatura mas alta fue: %.2f del dia %i y la mas baja fue: %.2f del dia %i\n",mayor,indmayor,menor,indmenor);
system("pause");
break;
case 4:
do
{
printf("Ingrese la fecha (numero de dia) que desea modificar: \n");
scanf("%i",&auxind);
auxind=auxind-1;
printf("Ingrese la nueva temperatura para el dia %i\n",auxind+1);
scanf("%f",&nuevatemp);
viejatemp=grados[auxind];
grados[auxind]=nuevatemp;
printf("La anterior temperatura del ese dia era: %.2f ya lueva es: %.2f ",viejatemp,grados[auxind]);
auxind=0;
viejatemp=0;
nuevatemp=0;
printf("desea modificar la temperatura de otro dia?(s/n): \n");
fflush(stdin);
scanf("%c,%resptemp");
}while (resptemp=='s');
system("pause");
break;
case 5:
system("cls");
printf("hasta luego...\n");
system("pause");
break;
default:
system("cls");
printf("OPCION INVALIDA, ingrese opcion valida! \n");
system("pause");
break;
}
}while (resp_menu!=5);
return 0;
}