Programación General > C/C++
Programa en c++
droezva:
Efectivamente tiene algunos errores bueno ahí te dejo el código donde encontré los errores en comentario, en teoria ya funciona ;D
--- Código: C++ ---#include <iostream.h> //Error tenias #include <iostream>#include <stdlib.h> int main(){ char articulos[10][30]; int cantidades[10][3]; // Error Logico int cantidades[3][10]; debe ser int cantidades[10][3]; for(int i=0;i<10;i++) { cout<<"Ingrese el nombre del articulo Nº"<<i+1<<" : "; cin.getline(articulos[i],30); //Error se debia indicar la posision tenias cin.getline(articulos,30); cout<<"Ingrese la produccion en el primer turno : "; cin>>cantidades[i][0]; //Error tenias cantidades[0]; cout<<"Ingrese la produccion en el segundo turno : "; cin>>cantidades[i][1]; //Error tenias cantidades[1]; cout<<"Ingrese la produccion en el tercer turno : "; cin>>cantidades[i][2]; //Error tenias cantidades[2]; cin.ignore(); } int mayor=0,indmay=0; //total de produccion por articulo cout<<endl<<endl<<"******* Produccion por articulo ******"<<endl; for(i=0;i<10;i++){ // aqui habia un error que redeclaraba la variable i esta fue declara en tu anterior for cout<<"Articulo: "<<articulos[i]; // Error Logico indicaba el arreglo no a las posciciones del arreglo tenias cout<<"Articulo: "<<articulos; cout<<" Produccion total: "<<cantidades[i][0]+cantidades[i][1]+cantidades[i][2]<<endl; //este if detecta el articulo con mayor produccion, y se usará luego. if(mayor<cantidades[i][0]+cantidades[i][1]+cantidades[i][2]) { mayor=cantidades[i][0]+cantidades[i][1]+cantidades[i][2]; indmay=i; } cout<<endl; } cout<<endl<<endl<<"******* Produccion por turno ******"<<endl; //total de produccion por turno int suma; for(i=0;i<3;i++) { cout<<"Turno "<<i+1; suma=0; for(int j=0;j<10;j++) { suma=suma+cantidades[j][i]; } cout<<"Produccion total: "<<suma<<endl; cout<<endl; } cout<<endl<<endl<<"******* Articulo con mayor produccion ******"<<endl; //articulo con mayor produccion. cout<<"Articulo con mayor produccion: "<<articulos[indmay]<<endl; cout<<"Cantidad producida: "<<mayor<<endl; return 0;}
y de todos modos mejore un poco el codigo espero que te sirva saludos
La idea es que las constantes serviran para ampliar el rango de productos asi como el de los Turnos sin necesidad de modificar el codigo tan solo con cambiar el valor a las constantes.
--- Código: C++ ---#include <iostream.h>#include <conio.h> const MAX = 10; //Productosconst MAX_T = 3; //Turnos int main(){ char articulos[MAX][30]; int cantidades[MAX][MAX_T], totalXArticulos[MAX], sumaTurnos[MAX_T], indexMayor=0; for(int i = 0; i < MAX_T; sumaTurnos[i++]=0); // Inicializar en 0 a sumaTurnos for(i = 0; i < MAX; i++) { totalXArticulos[i] = 0; cout<<"Ingrese el nombre del articulo Nº "<<i+1<<" : "; cin.getline(articulos[i],30); for(int j = 0; j < MAX_T; j++) { cout<<"Ingrese la produccion del turno "<<j+1<<": "; cin>>cantidades[i][j]; sumaTurnos[j] += cantidades[i][j]; // suma[j] = suma[j] + cantidades[i][j]; totalXArticulos[i] += cantidades[i][j]; } if(totalXArticulos[i] > totalXArticulos[indexMayor]) indexMayor = i; cin.ignore(); clrscr(); } cout<<"*******Total de Produccion por articulo ******"<<endl; for(i = 0; i < MAX; i++) cout<<"Articulo: "<<articulos[i]<<" -> Produccion total: "<<totalXArticulos[i]<<endl; cout<<endl<<endl<<"******* Produccion por turno ******"<<endl; for(i = 0; i < MAX_T; i++) cout<<"Turno: "<<i+1<<" -> Produccion total: "<<sumaTurnos[i]<<endl; cout<<endl<<endl<<"******* Articulo con mayor produccion ******"<<endl; cout<<"Articulo con mayor produccion: "<<articulos[indexMayor]<<endl; cout<<"Cantidad producida: "<<totalXArticulos[indexMayor]<<endl; return 0;}
Saludos
Navegación
[*] Página Anterior
Ir a la versión completa