String marking and value return

Asked

Viewed 63 times

1

Here is my program, I need to register up to 100 products, each product is available in 5 stores and I need to say the quantity sold of each product in each of the 5 stores. I will have a menu that will have registration option, sale media of each of the stores, sales media of each product and the best selling product of each store.

The biggest problem I’m facing is this: if the biggest selling product is on vetor[5] from store 1, how to say the name of this product?

Code:

#include <stdio.h>
#include <stdlib.h>
#include <strings.h>

#define tamanho_nome 50
#define quantidade_produtos 100

int main(){

char nome_produto[quantidade_produtos][tamanho_nome];
int loja1[quantidade_produtos];
int loja2[quantidade_produtos];
int loja3[quantidade_produtos];
int loja4[quantidade_produtos];
int loja5[quantidade_produtos];
int quantidade_cadastrada=0,i,opcao,posicao=0;
float medialoja1=0;
float medialoja2=0;
float medialoja3=0;
float medialoja4=0;
float medialoja5=0;
float media_venda_cada_produto=0;
int maior_vendal1=0;
int maior_vendal2=0;
int maior_vendal3=0;
int maior_vendal4=0;
int maior_vendal5=0;

do{
system("CLS");
printf("1-Cadastrar novo produto: \n");
printf("2-Media venda de cada loja: \n");
printf("3-Media de venda de cada produto : \n");
printf("4- Produto mais vendido de cada loja: \n");
printf("5-Sair: \n");
scanf("%d",&opcao);
system("CLS");
fflush(stdin);
if(opcao==5){
    break;
}

switch(opcao){

case 1: printf("Digite o nome do produto: \n");
scanf("%[^\n]",&nome_produto[posicao]);

printf("Digite a quantidade vendida na Loja 1: \n");
scanf("%d",&loja1[posicao]);
printf("Digite a quantidade vendida na Loja 2: \n");
scanf("%d",&loja2[posicao]);
printf("Digite a quantidade vendida na Loja 3: \n");
scanf("%d",&loja3[posicao]);
printf("Digite a quantidade vendida na Loja 4: \n");
scanf("%d",&loja4[posicao]);
printf("Digite a quantidade vendida na Loja 5: \n");
scanf("%d",&loja5[posicao]);
posicao++;
system("PAUSE");
system("cls");
break;

case 2: for(i=0;i<posicao;i++){
medialoja1+=loja1[i];
medialoja2+=loja2[i];
medialoja3+=loja3[i];
medialoja4+=loja4[i];
medialoja5+=loja5[i];
}
medialoja1=medialoja1/posicao;
medialoja2=medialoja2/posicao;
medialoja3=medialoja3/posicao;
medialoja4=medialoja4/posicao;
medialoja5=medialoja5/posicao;

printf("\nA loja 1 vendeu em media %2.f ",medialoja1);
printf("\nA loja 2 vendeu em media %2.f ",medialoja2);
printf("\nA loja 3 vendeu em media %2.f ",medialoja3);
printf("\nA loja 4 vendeu em media %2.f ",medialoja4);
printf("\nA loja 5 vendeu em media %2.f ",medialoja5);
system("PAUSE");
system("CLS");
break;

case 3: for(i=0;i<posicao;i++){
media_venda_cada_produto=loja1[i]+loja2[i]+loja3[i]+loja4[i]+loja5[i];
media_venda_cada_produto=media_venda_cada_produto/5;
printf("%s vendeu %2.f \n",nome_produto[i],media_venda_cada_produto);
}
system("PAUSE");
system("CLS");
break;

case 4:
  maior_vendal1=loja1[0];
  maior_vendal2=loja2[0];
  maior_vendal3=loja3[0];
  maior_vendal4=loja4[0];
  maior_vendal5=loja5[0];

  for(i=0;i<posicao;i++){

    if(loja1[i]>maior_vendal1){
        maior_vendal1=loja1[i];
    }
     if(loja2[i]>maior_vendal2){
        maior_vendal2=loja2[i];
    }
     if(loja3[i]>maior_vendal3){
        maior_vendal3=loja3[i];
    }
     if(loja4[i]>maior_vendal4){
        maior_vendal4=loja4[i];
    }
     if(loja5[i]>maior_vendal5){
        maior_vendal5=loja5[i];
    }
  }

   for(i=0;i<posicao;i++){
    if(maior_vendal1==loja1[i]){
    printf("\nProduto mais vendido da loja1 e o %s\n",nome_produto[i]);
    }
    if(maior_vendal2==loja2[i]){
   printf("\nProduto mais vendido da loja2 e o %s\n",nome_produto[i]);
    }

    if(maior_vendal3==loja3[i]){
    printf("\nProduto mais vendido da loja3 e o %s\n",nome_produto[i]);
    }

    if(maior_vendal4==loja4[i]){
 printf("\nProduto mais vendido da loja4 e o %s\n",nome_produto[i]);
    }

    if(maior_vendal5==loja5[i]){
  printf("\nProduto mais vendido da loja5 e o %s\n",nome_produto[i]);
    }
   }



    system("PAUSE");
    system("CLS");
    break;

    default: printf("Voce digitou uma opcao invalida: \n");
    system("PAUSE");
    system("CLS");
    }
  }
while(opcao!=5000);
}

Code running on Ideone.

  • ideone link is not working here...

  • the 5 stores own the 100 products or each may or may not have a product?

  • no e sim kkk, if I register a product I have to inform the quantity sold of that product in each of the 5 stores (the 5 have to have the same product) even if it is 0 sold @Leila

  • I will give up kk of the question , I only ask stupid question :s

  • Look, I see here, there are some errors in the code and it’s incomplete, right? I’ll send what I corrected and I’ll think about the question itself

1 answer

2

Well, there are some errors in the code, like scanf("%d", &loja1);

Because being vector is already a pointer to int, then put the & causes the variable to be of the type **int, then the right is to use without the & in that case: scanf("%d", loja1);

You made this "do-if", if it exists, and I don’t understand why.

do{
    printf("O que deseja saber?: \n");
    printf("1-Cadastrar um novo produto ?: \n 2-Media de venda das lojas ?: \n 3-Media de venda dos produtos ?: \n 4-Produto mais vendido de cada uma das lojas ?: \n 5-Sair \n");
    scanf("%d",&opcao);

    if(opcao==5){
        break;
    }

I switched to that do-while:

do{
        printf("O que deseja saber?: \n");
        printf("1-Cadastrar um novo produto ?: \n 2-Media de venda das lojas ?: \n 3-Media de venda dos produtos ?: \n 4-Produto mais vendido de cada uma das lojas ?: \n 5-Sair \n");
        scanf("%d",&opcao);

}while(opcao != 5); 

The do-while has meaning "do it while the condition is true", then in that case when the option chosen is 5, the condition will be false and will leave the while.

With these corrections it was like this:

#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#define quantidade_produtos 100
#define tamanho_nome 100
#define quantidade_vendida 100

int main(){

    int produtos=0,opcao;
    float medialoja1=0,medialoja2=0,medialoja3=0,medialoja4=0,medialoja5=0;
    char nome_produto[quantidade_produtos][tamanho_nome];
    int loja1[quantidade_produtos],loja2[quantidade_produtos];
    int loja3[quantidade_produtos] ,loja4[quantidade_produtos];
    int loja5[quantidade_produtos];

    do{
        printf("O que deseja saber?: \n");
        printf("1-Cadastrar um novo produto ?: \n 2-Media de venda das lojas ?: \n 3-Media de venda dos produtos ?: \n 4-Produto mais vendido de cada uma das lojas ?: \n 5-Sair \n");
        scanf("%d",&opcao);

    }while(opcao != 5); 

    fflush(stdin);
    switch(opcao){

        case 1: 
            printf("Qual o nome do produto?: \n");
            scanf("%[^\n]",nome_produto[produtos]);
            fflush(stdin);
            printf("Qual a quantidade vendida na loja 1 ?: \n");
            scanf("%d",loja1);
            printf("Qual a quantidade vendida na loja 2 ?: \n");
            scanf("%d",loja2);
            printf("Qual a quantidade vendida na loja 3 ?: \n");
            scanf("%d",loja3);
            printf("Qual a quantidade vendida na loja 4 ?: \n");
            scanf("%d",loja4);
            printf("Qual a quantidade vendida na loja 5 ?: \n");
            scanf("%d",loja5);
            produtos++;
            break;

        case 2: 
        for(int i=0;i<produtos; i++){
            medialoja1+=loja1[i];    
        }
    }
   return 0;
}

On the question itself, "if the highest selling product is in the vector[5] of store 1, how do you say the name of this product?" , it seems to me that the way you structured it doesn’t help. And there are some things that I don’t understand the purpose, for example:

printf("Qual a quantidade vendida na loja 1 ?: \n");
scanf("%d",loja1);

In doing so, you place the quantity in the first position of the vector only, which doesn’t make much sense. If I can explain better how you thought I can try to help. Research on struct that may be useful to save the name and quantity of the product in the same place.

  • Leila, I’m doing it all day and I think "I got it," but the problem is that now the vectors are inverted , he’s kind of random but I think it’s right , he tries to take a look, I uploaded it again: https://ideone.com/zFMqQ5

  • made with numbers on paper and gave the same result , only in different orders :

  • and answering your question, the store [100] will receive 100 sold quantity of 100 products , if I register 1 product will pro 0 the quantity sold it

  • I’ll delete the topic , no one reached any conclusions right

Browser other questions tagged

You are not signed in. Login or sign up in order to post.