Ir ao conteúdo
  • Cadastre-se

Exercício em C - Matriz


alesilva90

Posts recomendados

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");


}

Link para o comentário
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...

Link para o comentário
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).

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...