Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/02/2013, 13:25
baselnick
 
Fecha de Ingreso: febrero-2013
Mensajes: 2
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta 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");}