Мне не удается вычислить процентное содержание и общее количество продаж

Отчетный период - следующий

У обувного магазина есть 4 продавца:

  1. Флоренция.
  2. Победа.
  3. Николас.
  4. Хуан.

У Вас есть предложение 3 типов тапок:

  1. Nike.
  2. Adidas.
  3. Reebok.

Каждый раз, когда осуществляется продажа эмитируется счет:

  • Номер счета (0, чтобы заканчиваться).
  • Я нумерую служащего (1 в 4).
  • Я нумерую Тапки (1 в 3).
  • Сумма продажи.

Чтобы месяц обрабатываются продажи и он просит, чтобы печататься:

  1. продажа полные веса каждого служащего.
  2. процентное содержание, которое продал каждый служащий на общем количестве.
  3. для каждого служащего имя тапки, которая больше продала.

ВЫ ЗАМЕЧАЕТЕ: Пункты A и B должно печататься упорядоченные большего в несовершеннолетнем продажами Реализовывать функцию порядка.

#include
#include
void main (void)
{
   char nomven [4][10]={"Florencia","Victoria","Nicolas","Juan"},nomzap [4][7]={"Nike","Adidas","Rebook"};
   float ventas [4][4]={{0}},venemp[4]={0},poremp[4],maxemp[4],importe,total=0;
   int numfac,numemp,numzap,i,j,k=1,cota=3,aux,auxsuc[0,1,2,3];
   clrscr();
   printf("Numero de Factura : ");
   scanf("%d",&numfac);
   while(numfac!=0)
{
  do{
     printf("Numero de Empleado  (1 a 4) : ");
     scanf("%d",&numemp);
     }
  while(numemp>4||numemp<1);
  do{
       printf("Numero de Zapatilla  (1 a 3) : ");
       scanf("%d",&numzap);
      }
    while(numzap>4||numzap<1);
    printf("Importe de la Venta  :");
    scanf("%f",&importe);
     ventas[numemp-1][numzap-1]=ventas[numemp-1][numzap-1]+importe;
     printf("Numero de Factura : ");
     scanf("%d",&numfac);
         }
  for(i=0;i<4;i++)
  for(j=0;j<4;j++)
  venemp[i]=ventas[i][j];
  for(i=0;i<4;i++)total=total+venemp[i];
  for(j=0;j<4;j++)poremp[j]=venemp[j]/total*100;
  while(k!=0){
                k=0;
                for(i=0;iauxsuc[i]){
                                                                aux=auxsuc[i];
                                                                auxsuc[i]=auxsuc[i+1];
                                                                auxsuc[i+1]=aux;
                                                                k=i;
                                                                }
                                        } 
        cota=k;
                }
         for(i=0;i<4;i++){
                          maxemp[i]=ventas[i][0];
                          for(j=1;j<4;j++){
                        if(ventas[i][j]>maxemp[i])maxemp[i]=ventas[i][j];
                                         }
                        }
    orden(auxsuc,vensuc);
    for(i=0;i<4;i++)
    printf("Empleado: %s ventas:$ %.2f porcentaje: %.2f %% \n",nomemp[auxsuc[i]],venemp[auxsuc[i]],poremp[auxsuc[i]]);
    for(i=0;i<4;i++){
                     printf("Empleado:%s \n",nomemp[i]);
                     printf("La Zapatilla mas vendida fue:\n");
                     for(j=0;j<4;j++){
                                      if(maxsemp[i]==ventas[i][j])printf("%s \n",nomzap[j]);
                                      }
                      }
  getch();
  }
  void orden(int auxsuc[4],float vensemp[4])
  {
   int aux,k=1,cota=3,i;
   while(k!=0){
              k=0;
              for(i=0;i=venemp[auxsuc[i]]){
                                                                             aux=auxsuc[i+1];
                                                                             auxsuc[i+1]=auxsuc[i];
                                                                             auxsuc[i]=aux;
                                                                             k=i;
                                                                              }
                                  }
               cota=k;
              }
  return;
}

Мне удается пройти успешно программу, но на экране, после загружая данные, Вы показываете Вам, что в первом линия не вычисляет мне процентное содержание продаж.

introducir la descripción de la imagen aquí

1
задан 08.11.2019, 09:26
1 ответ
for(i=0;i<4;i++)
for(j=0;j<4;j++)
venemp[i]=ventas[i][j];

Продажи служащего (я предполагаю, что это - то, чего venemp) всегда получают стоимость Гєltima реализованная продажа, так как не estГЎs складывая, если не распределяя. Как стоимость продаж estГЎ плохо, процентное содержание очевидно saldrГЎ плохо. Конечно querГ-схвати делать это:

for(i=0;i<4;i++)
for(j=0;j<4;j++)
venemp[i]+=ventas[i][j];
//       ^^ <--- Sumar la venta 'j' del empleado 'i' en venemp.

, Но это несовершеннолетний твоих проблем. Ты cГіdigo - бедствие:

  • Этикеток вопрос как , когда ничто из тебя cГіdigo не похоже на вышеупомянутый язык ВїNo estarГЎs используя в действительности?
  • Заголовки <stdio.h> и <conio.h> - C, не C ++. Если ты они нуждаешься в том, чтобы использовать (что не случай) deberГ-эксперт использовать ее versiГіn приспособленная в C ++: <cstdio>. Относительно <conio.h>, у него нет versiГіn C ++ .
  • funciГіn main должен считать int типом возврата .
  • В C ++ функции, которые они не получают parГЎmetros, поддаются со списком parГЎmetros vacГ - или, не с void.
  • Переменные deberГ-an иметь автообъяснительные имена, имена переменных единственной буквы смущены, сокращения склонные в malinterpretaciones и имена genГ©ricos как aux и Ваши последствия не вносят ни одной informaciГіn в Ваш misiГіn ни razГіn существования.
  • В C ++ обычно не занимается с образованием символов, использует лучше std::string.
  • В C ++ использует std::cin для чтения данных и std::cout, чтобы писать в консоли, printf и scanf - функции C.
  • Тапки идут от одного до трех год, но в [1117-] while ты подтверждаешь, что они пошли от одного до четыре год.
  • Сжимать cГіdigo не harГЎ, что понравился mГЎs, наоборот: harГЎ, что состоял mГЎs difГ-cil в том, чтобы читать, в том, чтобы понимать и в том, чтобы отлаживать, уже estГЎs перенося следствия.
    • AdemГЎs, не имеет смысл, что ты сжал, когда в конце концов indentas какие-то lГ-neas до Quintanilla Наверху . Предложенные

.

, Если ты исправляешь все проблемы, упомянутые в предыдущих точках и используешь C ++, как он происходит, ты cГіdigo podrГ, - чтобы быть похожим в:

#include <iostream>
#include <numeric>

struct Factura
{
    int id{};
    int id_empleado{};
    int id_zapatilla{};
    float importe{};
};

std::istream &operator >>(std::istream &i, Factura &f)
{
    std::cout << "Nº factura: ";
    std::cin >> f.id;

    if (f.id)
    {
        do
        {
            std::cout << "Nº empleado: ";
            std::cin >> f.id_empleado;
        } while (f.id_empleado < 1 || f.id_empleado > 4);

        do
        {
            std::cout << "Nº zapatilla: ";
            std::cin >> f.id_zapatilla;
        } while (f.id_zapatilla< 1 || f.id_zapatilla > 3);

        std::cout << "Importe de la venta: ";
        std::cin >> f.importe;
    }

    return i;
}

std::ostream &operator <<(std::ostream &o, const Factura &f)
{
    return (o << "Factura " << f.id << '\n'
        << "\tEmpleado " << f.id_empleado << '\n'
        << "\tZapatilla " << f.id_zapatilla << '\n'
        << "\tImporte " << f.importe << '\n');
}

int main()
{
    using std::begin;
    using std::end;

    Factura factura[4]{};

    for (auto &f : factura)
        std::cin >> f;

    for (const auto &f : factura)
        std::cout << f << '\n';

    auto total_ventas = std::accumulate(begin(factura),
                    end(factura),
                    0.f,
                    [](auto a, auto &b)
                    {
                        return a + b.importe;
                    });

    std::cout << "Total ventas: " << total_ventas << '\n';

    for (auto empleado : { 1, 2, 3, 4})
    {
        auto total_empleado = std::accumulate(begin(factura),
                            end(factura),
                            0.f,
                            [&empleado](auto a, auto &b)
                            {
                                return a + (b.id_empleado == empleado ? b.importe : 0.f);
                            });

        std::cout << "Ventas de " << empleado << " = " << total_empleado
            << '(' << (100.f * total_empleado / total_ventas) << "% del total\n";
    }

    return 0;
}

ты Можешь видеть cГіdigo функционируя в онлайн Try it! .

2
ответ дан 01.12.2019, 12:21