14/07/2011, 22:14
|
| | Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 13 años, 4 meses Puntos: 0 | |
Vectores y Struct El programa debe tener lo siguiente:
Crear un programa que permita ingresar 15 datos, la TEMPERATURA PROMEDIO y CIUDAD a la que pertenece. Se desplegar un menu con las opciones:Ingresar Datos al vector, Consulta de temperatura por CIUDAD, Mayor temperatura, Menor temperatura, Temperatura promedio, Temperaturas más cercanas a la media, Salir
En todos los casos desplegar la CIUDAD a la que pertenece la temperatura.
El codigo me va quedando algo así:
#include<stdio.h>
#include<conio.h>
#define TEMP 15
struct temperatura{
int temp_prom;
char ciudad[10];
};
void menu(void);
void ingresar(struct temperatura temp[]);
//void consulta(struct temperatura temp[]);
void mayor(struct temperatura temp[]);
void menor(struct temperatura temp[]);
void promedio(struct temperatura temp[]);
void cercana (struct temperatura[]);
void menu(void){
clrscr();
printf("\n\n\n\t\t1 - Ingresar Datos al vector");
printf("\n\t\t2 - Consuta de temperatura por CUIDAD");
printf("\n\t\t3 - Mayor temperatura");
printf("\n\t\t4 - Menor temperatura");
printf("\n\t\t5 - Temperatura promedio");
printf("\n\t\t6 - Temperaturas mas cercanas a la medida");
printf("\n\n\t\t7 - Salir");
}
void ingresar(struct temperatura temp[TEMP]){
int i;
for(i=0;i<16;i++){
clrscr();
printf("\n\n\n\t\tIngrese TEMPERATURA PROMEDIO");
scanf("%i",&temp[i].temp_prom);
flushall();
printf("\n\n\n\t\tIngrese CIUDAD");
gets(temp[i].ciudad);
}
}
//void consulta(struct temperatura temp[15]) {
// clrscr();
// char auxi;
// int i;
// printf("Ingrese Ciudad");
// scanf("%c",&auxi);
// for(i=0;i<TEMP;i++){
// if(temp[i].ciudad[i]==auxi)
// printf("%i",temp[i].temp_prom[i]);
//
// // }
void mayor(struct temperatura temp[TEMP]){
clrscr();
int mayor,i;
mayor=temp[0].temp_prom;
char *ciudad;
for(i=0;i<16;i++)
if(temp[i].temp_prom>mayor){
mayor=temp[i].temp_prom;
ciudad=temp[i].ciudad;
}
printf("\n\tNumero mayor %i en %s",mayor,ciudad);
}
void menor (struct temperatura temp[TEMP]){
clrscr();
int menor,i;
menor=temp[0].temp_prom;
char *ciudad;
for(i=0;i<16;i++)
if(temp[i].temp_prom<menor){
menor=temp[i].temp_prom;
ciudad=temp[i].ciudad;
}
printf("\n\tNumero mayor %i en %c",menor,ciudad);
}
void promedio(struct temperatura temp[TEMP]){
int i,promedio=0;
for(i=0;i<TEMP;i++)
promedio=promedio+(temp[i].temp_prom);
promedio=promedio/TEMP;
printf("\n\t\tPromedio de Temperaturas: %i",promedio);
}
void cercana(struct temperatura temp[TEMP]){
int i,media=0,vec_auxi[TEMP],cerca;
for(i=0;i<TEMP;i++)
media=media+(temp[i].temp_prom);
media=media/TEMP;
for(i=0;i<TEMP;i++)
if(temp[i].temp_prom)
vec_auxi[i]=(temp[i].temp_prom)-media;
else
vec_auxi[i]=media-(temp[i].temp_prom);
cerca=vec_auxi[i];
for(i=0;i<TEMP;i++)
if(vec_auxi[i]<cerca)
menor=vec_auxi[i];
printf("\n\tcerca %i", menor);
}
void main(){
struct temperatura temp[15];
int op;
do{
clrscr();
menu();
scanf("%i",&op);
flushall();
if((op>=1)&&(op<=7)){
switch(op){
case 1: ingresar(temp);
break;
// case 2: consulta(temp);
// break;
case 3: mayor(temp);
break;
case 4: menor(temp);
break;
case 5: promedio(temp);
break;
// case 6: cercana(temp);
//
// break;
}
}
else
if(op!=7){
printf("\n\n\tError, opcion invalida!");
getch();
}
}while(op!=7);
}
LAs funciones que me funcionan bien son la del menu y la de ingreso
pero las el resto, por ejemplo cuando tengo que escojer una de las opciones solo sirve la 1 las demás no las "detecta" , debe haber un error que he dejado pasar, pero no lo encuentro,
ahora bien, para las funcion consulta, me he entreverado al momento de hacerla por eso está comentada,,,, idea como hacerlo¿
por ultimo la funcion de cercana, como puedo hacer eso¿¿¿¿?????
Muchisimas Gracias!!
Agradezco Muchissimo respuesta
;) |