ayuda programa c++

Iniciado por marchiali, 28 Julio 2014, 22:53 PM

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

marchiali

hola, necesito ayuda con un enunciado que me pide que programe un algoritmo pero tengo un problema.
el enunciado es este: una cadena de comida rapida elabora 7 tipos distintos de hamburguesas que comercializa en 9 franquicias distribuidas en la ciudad. la empresa desea analizar el consumos de sus productos durante el primer cuatrimestre del año.
Se ingresan por teclado pedidos de las diferentes franquicias con la forma: TipoHamburguesa (1...7) y CodSucursal (1...9). Los datos finalizan con TipoHamburguesa igual a 0.  Codifique una sola función que determine el tipo de hamburguesa mas vendido y el local que mayor ventas realizo en total.

y este es el codigo que tengo hasta ahora:
#include <iostream>
using namespace std;

void ventastotales(int ventas[][9], int pedidos, int &ham_masvendida, int &suc_masventas){
int maxvendidas=0; int maxventas=0;
for (int i=0; i<7; i++){
for (int j=0; j<9; j++){
if (i>i-1){
ventas[i][j]=maxvendidas;
}else{
ventas[i-1][j]=maxvendidas;
}
if (j>j-1){
ventas[i][j]=maxventas;
}else{
ventas[i][j-1]=maxventas;
}
maxvendidas=ham_masvendida;
maxventas=suc_masventas;
}
}

}



int main(int argc, char *argv[]) {
int ventas[7][9];

int tipohamburguesa, codsucursal, pedidos;

for (int i=0; i<7; i++){
for (int j=0; j<9; j++){
ventas[i][j]=0;
}
}

cout<<"ingrese tipo de hamburguesa"<<endl;
cin>>tipohamburguesa;

while (tipohamburguesa !=0){
cout<<"ingrese cod. sucursal"<<endl;
cin>>codsucursal;
cout<<"¿cuantos pedidos se registraron?"<<endl;
cin>>pedidos;
ventas[tipohamburguesa][codsucursal]=pedidos;
cout<<"ingrese tipo de hamburguesa"<<endl;
cin>>tipohamburguesa;

}

int hambmasvendida, sucmasventas;
ventastotales(ventas, pedidos, hambmasvendida, sucmasventas);

cout<<"hamburguesa mas vendida"<<endl;
cout<<hambmasvendida<<endl;
cout<<"suc. con mas ventas"<<endl;
cout<<sucmasventas;



return 0;
}


el programa compila bien pero en el resultado me muestra como hamburguesa mas vendida siempre a la num. 2 y en suc. con mas ventas pone numeros al azar.
que puede ser lo que este mal? gracias

Blaster

La función según el enunciado debería quedar mas o menos asi:

Código (cpp) [Seleccionar]
void ventastotales(int ventas[][9], int pedidos, int &ham_masvendida, int &suc_masventas)
{
    int maxvendidas = 0;

    for (int i = 0; i < 7; i++)
    {
        for (int j = 0; j < 9; j++)
        {
            if (ventas[i][j] > maxvendidas)
            {
                maxvendidas = ventas[i][j];
                ham_masvendida = i;
                suc_masventas = j;
            }
        }
    }
}


En la función que posteaste veo mucha inconsistencia