Look at the loop while
that you programmed the variable cont
will iterate until it is smaller than the variable i
( which is the variable that receives the product registration number ), only the index of the array you are using to enter the values and to make the calculation is being i
where it should be cont
, then it would look something like this.
...
while (cont<i) {
printf("Digite a quantidade vendida do %dº produto: ", (cont+1));
scanf("%d", &produto[cont]);
printf("Digite o preco da unidade do %dº produto: ", (cont+1));
scanf("%lf", &preco[cont]);
total[cont] = (produto[cont]*preco[cont]);
totalCompras += total[cont];
cont++;
}
...
Another detail to note is not related to your question but that might help you is the use of #define
, you could use const unsigned int N = 30
, then I’d be like this:
#include <stdio.h>
int main(){
const unsigned int N = 30;
...
}
And also the use of a struct
that would nest the arrays produto
, preco
and total
, more or less like this:
#include <stdio.h>
struct venda{ //struct que aninha produto, preco e total
unsigned int quantidade;
double valor_unitario;
double sub_total;
};
int main() {
const unsigned int N = 30; //não estou utilizando #define
unsigned int i=0, cont=0;
double totalCompras=0;
struct venda vendas[N]; //Criando um array de structs
printf("Digite quantos produtos deseja cadastrar: ");
scanf("%d", &i);
while ( cont < i ) {
printf("Digite a quantidade vendida do %dº produto: ", ( cont + 1 ) );
scanf("%d", &vendas[ cont ].quantidade ); //populando a variavel quantidade do meu array vendas no indice cont
printf("Digite o preco da unidade do %dº produto: ", ( cont + 1 ) );
scanf("%lf", &vendas[ cont ].valor_unitario );//populando a variavel valor_unitario do meu array vendas no indice cont
vendas[ cont ].sub_total = ( vendas[ cont ].quantidade * vendas[ cont ].valor_unitario);//populando a variavel sub_total do meu array vendas no indice cont
totalCompras += vendas[cont].sub_total;
cont++;
}
cont = 0;
while( cont < i ) {
printf("\n Total de vendas do produto %i: %0.2lf\n", cont + 1, vendas[ cont ].sub_total );
cont++;
}
printf("\nTotal das compras: %0.2lf\n", totalCompras );
}
It worked! I will implement the tips, thank you.
– Douglas Barros