Ir para o conteúdo
pedrugoncalves

[Resolvido] problema com matriz

Mensagens Recomendadas

pedrugoncalves

Boa tarde, preciso de ajuda num problema que me apareceu, precisava de somar alguns elementos de uma matriz. iniciei a matriz da seguinte forma v[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,28,31,30,31,30,31,31,30,31,30,31}};...isto representa os dias dos meses do ano a minha ideia é quando introduzir o mes inicial e o final que ele me de a contagem dos dias entre esses meses. alguem me pode ajudar?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Primeiro define bem o que queres dizer com "contagem de dias entre mes inicial e mes final".

Imagine que o mes inicial e o mes final sao o mesmo. Quantos dias passaram? 0? ou 30? ...

Segundo: tenta fazer o codigo por ti e apresenta-o

Terceiro: soma os dias do primeiro mes, soma os dias do segundo mes, calcula a diferenca

Quarto: como é que vais lidar com anos bissextos?

Quinto: o array v[0] e o array v[1] sao iguais. Não precisas dos dois.

Sexto: podes usar o elemnnto 0 para Janeiro, 1 para Fevereiro, ..., 11 para Dezembro e seguir a nomenclaura base do C; em vez de inventares aquele mes 0 sem dias.

Editado por pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrugoncalves

se o MI==MF esta formula nao entra so serve para meses diferentes, usei dois por causa dos anos diferentes, estou um bocado sem soluções, penso que se resolve com um ciclo for mas nao sei como o fazer. imaginemos que o MI é janeiro e MF é fevereiro o que eu quero é que ele faça 31+28

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrugoncalves

#include <conio.h>
#include <stdio.h>


int main ()
{
int i, soma ;
int v[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};

for(i=0; i<6; i++)
soma=soma+v[i];

   printf("%d", v[i]);


return 0;
}

apenas me dá os dias do mes que estiver i<6

Editado por pmg
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrugoncalves

#include <conio.h>
#include <stdio.h>


int main ()
{
int i, soma=0;
int v[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};

for(i=3; i<5; i++)
soma=soma+v[i];

   printf("%d", soma);


return 0;
}

neste ja me conta como quero mas tenho um problema ainda, se for anos diferente ele tem que voltar a contar do inicio e essa parte nao faço mesmo ideia de como fazer

Editado por pmg
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KiNgPiTo

Não estou a perceber bem a prática em si do código, mas se o teu problema é percorrer os arrays dentro de v podes meter mais um ciclo..

#include <conio.h>
#include <stdio.h>


int main ()
{
int i, j, soma=0;
int v[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,28,31,30,31,30,31,31,30,31,30,31}};

for(j=0; j<2; j++)
 for(i=3; i<5; i++)
 soma=soma+v[j][i];

printf("%d", soma);

return 0;
}

Edit: Usa as tags de código, fica mais fácil de ler...

Editado por KiNgPiTo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

neste ja me conta como quero

Fixe!

Agora só tens que transformar o programa numa função de modo a que a possas usar várias vezes para meses diferentes (possivelmente introduzidos pelo utilizador).

Quanto à questão dos anos, pensa em somar os meses todos (de Janeiro a Dezembro) e acrescentar esse total as vezes necessárias.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.