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 <iostream>
#include <sstream>
using namespace std;
string convertir(int a){
    stringstream buf;
    string res;
    buf<<a;
    res=buf.str();
    return res;
}
int main(){
     string cad="",aux,n;
      int w=0,cont=0,tem,t,p;
       cout<<"ingresa la cantidad de alumnos a ingresar"<<endl;
       cin>>t;
       string Nom[t];
       int Prom[t];
       for(int i=0;i<<t;i++){
           Nom[i]="";
           Prom[i]=0;
       }
       while(t>cont){
       cout<<"Ingresa nombre"<<endl;
       cin>>n;
       Nom[cont]=n;
       cout<<"Ingresa nota"<<endl;
       cin>>p;
       Prom[cont]=p;
       cont++;
       }
       while(w!=(t-1)){
           w=0;
           for(int 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(int j=0;j<t;j++){
           cad=cad+"Nombre: "+Nom[j]+" Nota: "+convertir(Prom[j])+"\n";
       }
       cout<<cad;
    return 0;
}

0 comentarios:

Publicar un comentario