Ir ao conteúdo
  • Cadastre-se
alesilva90

Exercício em C - Matriz

Recommended Posts

Olá, pessoal.

Eu estou iniciando em meu curso e peguei um exercício em C de uma listinha aqui, mas não estou conseguindo encontrar onde errei, o item a eu consegui fazer (funcionou ao menos), mas o c não... agradeço se alguém puder me ajudar.

Segue o exercício abaixo:

Elabore um programa que preencha uma matriz 12x4 com os valores das vendas de uma loja, em que cada linha representa um mês do ano e cada coluna representa uma semana do mês. O programa deverá calcular e mostrar: a) O total vendido em cada mês do ano, mostrando o nome do mês por extenso; B) O total vendido em cada semana durante o ano; c) O total vendido pela loja no ano.

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

main(){

int mat[3][4],L,C,somames=0,somaano=0,somatotal=0,mes;
//armazenar o mes
for(L=0;L<3;L++){
printf("\n\nDigite o mes em numero %d: ",L);
scanf("%d",&mes);
//armazenar os valores da semana
somames=0;
for(C=0;C<4;C++){
printf(" Valores vendidos na semana %d %d:",L,C);
scanf("%d",&mat[L][C]);
somames=somames+mat[L][C];
somaano=somames;
somaano=somaano+somames;


}

switch (mes){
case 1:printf("Janeiro");
break;
case 2:printf("Fevereiro");
break;
case 3:printf("Março");
break;
case 4:printf("Abril");
break;
case 5:printf("Maio");
break;
case 6:printf("Junho");
break;
case 7:printf("Julho");
break;
case 8:printf("Agosto");
break;
case 9:printf("Setembro");
break;
case 10:printf("Outubro");
break;
case 11:printf("Novembro");
break;
case 12:printf("Dezembro");

break;

}
//soma total da semana
printf(" teve a soma total de semana: %d",somames);



}

printf("\n\nSoma do ano: %d",somaano);

printf("\n\n");


}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas seria somar as vendas do ano todo, certo?

Bom, basta usar dois for(). O primeiro varrendo de 0 a 11 (os meses) e o segundo varrendo de 0 a 3 (as semanas). Pra cada combinação matriz[mes][semana] você soma o valor armazenado aí a uma outra variável.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mas seria somar as vendas do ano todo, certo?

Bom, basta usar dois for(). O primeiro varrendo de 0 a 11 (os meses) e o segundo varrendo de 0 a 3 (as semanas). Pra cada combinação matriz[mes][semana] você soma o valor armazenado aí a uma outra variável.

Sim, isso mesmo, eu tentei dessa maneira, mas o cálculo não estava correto, ele não somava todos os meses, parece que no looping do for o valor anterior era perdido...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Sim, isso mesmo, eu tentei dessa maneira, mas o cálculo não estava correto, ele não somava todos os meses, parece que no looping do for o valor anterior era perdido...

Foi isso aqui que você usou?


somames=somames+mat[L][C];
somaano=somames;
somaano=somaano+somames;

Se sim, o erro estaria aqui

somaano=somames;

A cada loop você perde o valor anterior de somaano, porque atribui a ele o valor (momentâneo) do mês.

Bom, eu faria assim:


for(int i = 0; i <= 11; ++i)
{
for(int j = 0; j <= 3; ++j)
{
soma += matriz[i][j];
}
}

A variável soma possui a soma de todos os 48 elementos (semanas).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×