Pages

viernes, 25 de enero de 2013

Mostrar alumnos ordenados por mayor puntaje de promedio Codigo Fuente en C

Problema
Hacer un programa o algoritmo que permita mostrar alumnos ordenados por mayor puntaje de promedio.

Solución
  • Entrada: Juan  12, lucia 10, alex 16,Sandra 14
  • Salida: alex16,Sandra 14,juan 12,lucia 10
Codigo Fuente en C
#include <stdio.h>
int main(){
        char *aux,*n;
      int w=0,cont=0,tem,t,p,i,j,k;
       printf("ingresa la cantidad de alumnos a ingresar\n");
       scanf("%d",&t);
       char *Nom[t];
       int Prom[t];
       for(i=0;i<t;i++){
           Nom[i]="";
           Prom[i]=0;
       }
       while(t>cont){
        n=(char *) malloc(sizeof(char)*10);
       printf("Ingresa nombre\n");
       scanf("%s",n);
       Nom[cont]=n;
       printf("Ingresa nota\n");
       scanf("%d",&p);
       Prom[cont]=p;
       cont++;
       }
       while(w!=(t-1)){
           w=0;
           for(k=0;k<(t-1);k++){
           if(Prom[k]>=Prom[k+1]){
           w++;
           }else{
            tem=Prom[k];
            Prom[k]=Prom[k+1];
            Prom[k+1]=tem;
            aux=Nom[k];
            Nom[k]=Nom[k+1];
            Nom[k+1]=aux;
           }
           }
       }
       for(j=0;j<t;j++){
           printf("Nombre: %s Nota: %d\n",Nom[j],Prom[j]);
       }
      return 0;
}

0 comentarios:

Publicar un comentario en la entrada