| |||
agregar notas altas y bajas en la opcion promedio y gotoxy al imprimir en fila buenas tengo que agregar notas altas y bajas entro los alumnos para ver quien queda en primer lugar y el promedio de la seccion yo lo hice pero solo el promedio de la seccion 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 Seccion A-----------\n"); printf("1 - Insertar Calificaciones.\n"); printf("2 - Promedio Seccion.\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 Seccion: "); 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[i]); printf("Calificacion: "); scanf("%f",&c[i]); 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[i]); printf("\nCalificacion: %.2f\n",c[i]);} 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[i]; c[i]=c[min]; c[min]=auxc; strcpy(auxn,a[i]); strcpy(a[i],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[i]; c[i]=c[min]; c[min]=auxc; strcpy(auxn,a[i]); strcpy(a[i],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[i]; 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[i],no)==0){ printf("---------------\n"); printf("Nombre: %s\n",a[i]); printf("Calificacion: %.2f",c[i]); printf("\n---------------\n"); p=i+1; break;} if(p==-1) printf("No se ha encontrado ningun dato.\n"); system("pause");} |
Etiquetas: |