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
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.
Jajaja muchas gracias, lo revisare ;D
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 [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-:
#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!.
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