Título: agregar notas altas y bajas en la opcion promedio y gotoxy al imprimir en fila Publicado por: baselnick en 5 Febrero 2013, 20:32 pm buenas tengo que agregar notas altas y bajas entro los alumnos para ver quien queda en primer lugar y el promedio de la sección yo lo hice pero solo el promedio de la sección y ademas tengo que ordenar en la opcion imprimir para que me salga en forma ordenada el nombre del alumno y a un lado la nota y posicion en el curso ayuda plisssssssss
#include <stdio.h> #include <stdlib.h> #include <string.h> #define n 1000 void insertar(float *c,char a[][15],int t); void imprimir(float *c,char a[][15],int t); void ordenar_nombre(float *c,char a[][15],int t); void ordenar_calificacion(float *c,char a[][15],int t); void buscar_nombre(float *c,char a[][15],char *no,int t); float promedio(float *c,int t); int existen_datos(int t); int main(void) { int opcion,ca=0,salir=0; float c[n]; char no[n][15],nom[15],opcionn; do{ system("cls"); printf(" ----------7mo sección A-----------\n"); printf("1 - Insertar Calificaciones.\n"); printf("2 - Promedio sección.\n"); printf("3 - Consultas.\n"); printf("4 - Imprimir Resultados.\n"); printf("5 - Salir.\n"); printf("Ingrese una opcion: "); scanf("%d",&opcion); switch(opcion){ case 1: printf("Cantidad de alumnos a ingresar: "); scanf("%d",&ca); insertar(c,no,ca); break; case 2: if(existen_datos(ca)==1){ printf("Promedio sección: "); printf("%.2f\n",promedio(c,ca)); system("pause");} break; case 3: if(existen_datos(ca)==1){ system("cls"); printf("Ingrese el nombre: "); scanf("%s",&nom); buscar_nombre(c,no,nom,ca);} break; case 4: if(existen_datos(ca)==1) imprimir(c,no,ca); break; case 5: salir=1; break; default: printf("Opcion mal ingresada.\n"); system("pause"); break;} }while(salir==0); return 0;} void insertar(float *c,char a[][15],int t){ int i; for(i=0;i<t;i++){ printf("%d Alumno.\n",i+1); fflush(stdin); printf("Nombre: "); gets(a); printf("Calificacion: "); scanf("%f",&c); printf("\n");} printf("Alumnos cargados con exito.\n"); system("pause");} void imprimir(float *c,char a[][15],int t){ int i; for(i=0;i<t;i++){ printf("---------------\n"); printf("%d Alumno.\n",i+1); printf("Nombre: %s",a); printf("\nCalificacion: %.2f\n",c);} printf("---------------\n"); system("pause");} void ordenar_nombre(float *c,char a[][15],int t){ int i,j; char auxn[15];float auxc; for(i=0;i<t-1;i++){ int min = i; for(j=i+1;j<t;j++) if(strcmp(a[min],a[j])>0)min=j; auxc=c; c=c[min]; c[min]=auxc; strcpy(auxn,a); strcpy(a,a[min]); strcpy(a[min],auxn);}} void ordenar_calificacion(float *c,char a[][15],int t){ int i,j; char auxn[15];float auxc; for(i=0;i<t-1;i++){ int min = i; for(j=i+1;j<t;j++) if(c[min]>c[j]) min=j; auxc=c; c=c[min]; c[min]=auxc; strcpy(auxn,a); strcpy(a,a[min]); strcpy(a[min],auxn);}} float promedio(float *c,int t){ float p=0;int i; for(i=0;i<t;i++) p=p+c; return p/t;} int existen_datos(int t){ if(t!=0) return 1; printf("No hay calificaciones cargadas.\n"), system("pause"); return 0;} void buscar_nombre(float *c,char a[][15],char *no,int t){ int i,p=-1; for(i=0;i<t;i++) if(strcmp(a,no)==0){ printf("---------------\n"); printf("Nombre: %s\n",a); printf("Calificacion: %.2f",c); printf("\n---------------\n"); p=i+1; break;} if(p==-1) printf("No se ha encontrado ningun dato.\n"); system("pause");} Título: Re: agregar notas altas y bajas en la opcion promedio y gotoxy al imprimir en fila Publicado por: Tryptophan en 5 Febrero 2013, 20:42 pm Buenas :). En primer lugar te recomiendo identar tu código, digo, es una buena práctica de programación para que quede ordenado y que otro pueda interpretarlo fácilmente... Uno mismo cuando desarrolla en la industria tiene que tocar código que no ve hace meses y es una práctica sana hacerlo. Bien, a ver si entendí...
1) Tenes que agregar notas altas y bajas 2) Tenes que insertarlas ordenadamente 3) Tenes que sacar un promedio Podes hacer un "InsertaOrdenado()" que reciba a la persona, su nota y al array en donde queres meterlo. Lo insertas en la posición en donde quede entre uno menor y mayor que él, y vas corriendo todos los otros (fijate si vas a usar un array estático o dinámico, u otra estructura). Cuando le den "Imprimir", ya lo tenes ordenado y ahí sacas el promedio recorriendo, sumando y dividiendo. Título: Re: agregar notas altas y bajas en la opcion promedio y gotoxy al imprimir en fila Publicado por: baselnick en 5 Febrero 2013, 22:28 pm disculpa la molestia pero me mostrarias como queda insertado en el codigo que ya me dio un colapso mental y es para mañana que tengo que entregarlo
|