Ayuda porfavorsito con programa en c++

Iniciado por califvv, 4 Diciembre 2012, 21:35 PM

0 Miembros y 1 Visitante están viendo este tema.

califvv

Hola chicos, como estan ;D, espero que bien.. tengo un pequeno problema con un programa que me enviaron en la escuela aca les dejo el enunciado y el codigo que llevo, :-( MI problema es que al compilarlo en la parte que necesito que me diga la cantidad de libros que solicite, me salen un monton de locuras  :-\.. si alguien puede ayudarme se lo agradeceria enormemente ;-), Gracias chicos.  ::)

PROBLEMA NRO 1.
En la biblioteca de la universidad, se hacen prestamos de libros que están clasificados en 8 grandes áreas. Se desea :
a) Inicializar el arreglo Áreas,
b) Leer el arreglo denominado CantLibros.
c) Calcular la cantidad total de libros solicitados durante el mes.
e) Mostrar un reporte Área y cantidad de libros de cada área solicitados durante el mes.


Esto es lo que llevo :(

#include <iostream>
#include <iomanip>
#include <conio.h>

using namespace std;
int main()
    {
   int i,STotLib, CantLibros[8],Min,Max;
   
// a) Inicializar Area
 
char  Area[8][20]={"Literatura","Matematica","Arte","Historia","Geografia","Computacion","Filosofia","Sistemas"};

   // b) Leer CantLibros
   
   cout<<"Ing. cantidad de libros solicitados:"<<endl;
   for(i=0;i<8;i=i+1)
   { cin>>CantLibros; }
   
// Aqui es la parte de, Ingresar i mostrar el area y la cantidad de libros
   cout<<"Ingrese indice : ";cin>>i;
   cout<<Area<<" "<<CantLibros<<endl;
   getch(); // pausa
   
// d) Calcular el total de libros
   
STotLib = 0;
   for(i=0;i<8;i=i+1)
   { STotLib = STotLib + CantLibros; }
   // d) Mostrar Reporte
   cout<<setw(20)<<"Area"<<setw(20)<<"Cantidad Libros:"<<endl;
   cout<<"========================================= "<<endl;
   for(i=0;i<8;i=i+1)
   { cout<<setw(20)<<Area<<" "<<setw(10)<<CantLibros<<endl; }
   cout<<" Total de libros prestados: "<<STotLib<<endl;
   
// e) Calcular el minimo y los indices del minimo
   
  Min = CantLibros[0];
   for(i=1;i<8;i=i+1)
   {  if ( CantLibros <Min )
      Min = CantLibros;
   }
   for(i=0;i<8;i=i+1)
   {   if ( CantLibros == Min )
       {  cout<<i<<" "; }
   }
   cout<<endl<<"Minimo = "<<Min<<endl;
   
  // f) Encontrar el maximo y en que area se da
   
   Max = CantLibros[0];
   for(i=1;i<8;i=i+1)
   {   if ( CantLibros > Max )
        Max = CantLibros;
   }
   for(i=0;i<8;i=i+1)
   {   if ( CantLibros == Max )
       { cout<<Area<<" "; }
   }
   cout<<endl<<"Maximo = "<<Max<<endl;
   getch();
return (0);
}
Muchisimas graciasss ;D

_niu

waaaa que feo codigo, por favor, que feo codigo.... horrible.... waaa terrible en todos los sentidos...

STotLib = 0;
   for(i=0;i<8;i=i+1)
   { STotLib = STotLib + CantLibros; }

ahi ta el problema
CantLibros es UN PUNTERO (: y sumas a STotLib 8 veces el puntero.
std::cout<<Mi wiki personal<<"Nada es inalcanzable\n";

califvv


leosansan

Por favor, vuelve a postear tu código. Para ello usa  esta vez las etiquetas GeSHi y eliges C++. Te saldrán dos code y en medio pegas el código.
Al no haberlo hecho así aparentemente tienes errores, ya que no salen los
Código (cpp) [Seleccionar]
[i] cosa que sí tienes en el código que copio. Y eso que no aparece en el post directo es lo que te corrige _niu , pero que si lo tienes puestos.
Pero no funciona el código por algún por error al copiarlo desde un código sin etiquetas.
Por eso, vuelve a colgar el código pero entre las etiquetas code de GeSHi, insisto.
Por curiosidad te dejo lo que me sale a mí al copiar tu código -pero que está mal por lo de las etiquetas-:

Código (cpp) [Seleccionar]
#include <iostream>
#include <iomanip>
#include <conio.h>
using namespace std;
int main() {
   int i,STotLib,CantLibros[8],Min,Max;
   
// a) Inicializar Area
 
char  Area[8][20]={"Literatura","Matematica","Arte","Historia","Geografia","Computacion","Filosofia","Sistemas"};

   // b) Leer CantLibros
   
   cout<<"Ing. cantidad de libros solicitados:"<<endl;
   for(i=0;i<8;i=i+1)
    cin>>CantLibros[i];
   
// Aqui es la parte de, Ingresar i mostrar el area y la cantidad de libros
   cout<<"Ingrese indice : ";cin>>i;
   cout<<Area[i]<<" "<<CantLibros[i]<<endl;
   getch(); // pausa
   
// d) Calcular el total de libros
   
STotLib = 0;
   for(i=0;i<8;i=i+1)
        STotLib += CantLibros[i];
   // d) Mostrar Reporte
   cout<<setw(20)<<"Area"<<setw(20)<<"Cantidad Libros:"<<endl;
   cout<<"========================================= "<<endl;
   for(i=0;i<8;i=i+1)
    cout<<setw(20)<<Area[i]<<" "<<setw(10)<<CantLibros[i]<<endl;
   cout<<" Total de libros prestados: "<<STotLib<<endl;
   
// e) Calcular el minimo y los indices del minimo
   
  Min = CantLibros[0];
   for(i=1;i<8;i=i+1)
   {  if ( CantLibros[i] <Min )
      Min = CantLibros[i];
   }
   for(i=0;i<8;i=i+1)
   {   if ( CantLibros[i] == Min )
       {  cout<<i<<" "; }
   }
   cout<<endl<<"Minimo = "<<Min<<endl;
   
  // f) Encontrar el maximo y en que area se da
   
   Max = CantLibros[0];
   for(i=1;i<8;i=i+1)
   {   if ( CantLibros[i] > Max )
        Max = CantLibros[i];
   }
   for(i=0;i<8;i=i+1)
   {   if ( CantLibros[i] == Max )
       { cout<<Area[i]<<" "; }
   }
   cout<<endl<<"Maximo = "<<Max<<endl;
   getch();
return (0);
}

Saluditos!.

flony

mira los errores que le encontré al código es que a un arreglo en un bucle for lleva el famoso
Citar
porque lo debe contar de o a 7...igual al intentar compilarlo dejo de tener los errores, pero por el rdo. tiene razón _niu...por los rdo. que muestra es un puntero
si un problema no tiene solucion entonces no es un problema...es algo inevitable