Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mapers en 13 Julio 2010, 07:56 am



Título: el viaje
Publicado por: mapers en 13 Julio 2010, 07:56 am


La entrada

de entrada estándar contendrá la información para varios viajes. La información correspondiente a cada viaje consiste en una línea que contiene un entero positivo n, el número de estudiantes en el viaje, seguido de n líneas de entrada, cada uno con la cantidad, en dólares y centavos, pasó por un estudiante. No hay más de 1000 estudiantes y ningún estudiante gastó más de $ 10,000.00. Una sola línea que contiene 0 sigue la información para el último viaje.

La salida

Por cada viaje, la producción de una línea indicando la cantidad total de dinero, en dólares y centavos, que deben ser cambiados para igualar los costos de los estudiantes.

Ejemplo de entrada

3 10,00 20,00 30,00     4 15,00 15,01 3,00 3,01        0
Ejemplo de entrada de salida para

$ 10.00 $ 11.99

esta es mi solucion ustedes como lo harian
Código
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[])
  7. {   float n,P,A[100000];
  8.   int i,S;
  9.    while(n!=0)
  10.    {   cout<<"INGRESE EL NUMERO DE ESTUDIANTES"<<endl;
  11.        cin>>n;
  12.        for(i=0;i<n;++i)
  13.            {
  14.               cout<<"A["<<i+1<<"]"<<endl;
  15.               cin>>A[i];
  16.               S=A[i]+S;
  17.            }
  18.            int P = ((double)S/n)+0.5;
  19.    float suma1=0,suma2=0,res=0;
  20.    for(i=0;i<n;++i)
  21.    {
  22.        if(A[i]>P)
  23.            suma1 +=A[i]-P;
  24.        else if(A[i]<P)
  25.            suma2 +=P-A[i];
  26.    }
  27.    if(suma1<suma2)
  28.    res=suma1;
  29.    else
  30.    res=suma2;
  31.    cout<<res<<endl;
  32.    A[100000]=NULL;
  33.  
  34.    }
  35.  
  36.    system("PAUSE");
  37.    return EXIT_SUCCESS;
  38. }
  39.  
  40.  
  41.