• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

bunark

[C] Ajuda: Elaboração duma Matrizes (Resolvido)

7 mensagens neste tópico

Pessoal a escola começou á pouco tempo e ja me dao exercicios dificeis para fazer podiam-me ajudar a resolver este é que nunca consegui trabalhar com matrizes ajudem-me por favor.  :P

Exercicio:

Cria uma matriz que permita armazenar as temperaturas mínimas e temperaturas máximas de um mes.

No inicio o utilizador deverá escolher a que mês de referem as temperaturas. O programa deverá ler

todas as temperaturas e listar todos os dados inseridos.

E ja fiz isto, nao sei se está bem:

#include<stdio.h>
int i,j;
float matriz[31][2];

void ler_temp31(void)
{
for(i=0;i<31;i++)
{
printf("Insira a temperatura minima do dia %d", i+1);
scanf("%d",& matriz[i][0]);
printf("Insira a temperatura maxima do dia %d",i+1);
scanf("%d",& matriz[i][1]);
}
}

void ler_temp30(void)
{
for(i=0;i<30;i++)
{
printf("Insira a temperatura minima do dia %d", i+1);
scanf("%d",& matriz[i][0]);
printf("Insira a temperatura maxima do dia %d",i+1);
scanf("%d",& matriz[i][1]);
}
}

void ler_temp28(void)
{
for(i=0;i<28;i++)
{
printf("Insira a temperatura minima do dia %d",i+1);
scanf("%d",& matriz[i][0]);
printf("Insira a temperatura maxima do dia %d",i+1);
scanf("%d",& matriz[i][1]);
}
}

void main()
{

int mes;

clrscr();
printf("Insira o mes pretendido\n\n1-Janeiro\n2-Fevereiro\n3-Mar‡o\n4-Abril\n5-Maia\n6-Junho\n7-Julho\n8-Agosto\n9-Setembro\n10-Outubro\n11-Novembro\n12-Dezembro\n\n");
scanf("%d", & mes);

switch(mes)
{
case 1: ler_temp31();
	break;

case 2: ler_temp28();
	break;

case 3: ler_temp31();
	break;

case 4: ler_temp30();
	break;

case 5: ler_temp31();
	break;

case 6: ler_temp30();
	break;

case 7: ler_temp31();
	break;

case 8: ler_temp31();
	break;

case 9: ler_temp30();
	break;

case 10: ler_temp31();
	 break;

case 11: ler_temp30();
	 break;

case 12: ler_temp31();
	 break;

}
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens alguns erros estruturais, um muito grave e que salta logo à vista.

Porque é que em vez de criares ler_temp30,ler_temp31 etc, e não crias só uma função ler_temp que recebe como parametro o número de dias? Isto cortava-te o número de funções para 1/3.

Depois, no switch.

Existe uma forma de fazer o que fizeste em 2 linhas, usando um vector.

int dias={31,28,31,30,31,30,31,31,30,31,30,31};
ler_temp(dias[mes-1]);

Passando agora para o "exercício em si", não percebi muito bem o que é pretendido. Ler as temperaturas e listá-las? Ou seja, ler as temperaturas e mostrá-las novamente?

PS: sem queres desvalorizar o que sabes porque ainda estás a aprender (todos estamos), esse exercício é bastante simples. Espera até chegares ao final do ano que vais, sem dúvida, concordar comigo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Passando agora para o "exercício em si", não percebi muito bem o que é pretendido. Ler as temperaturas e listá-las? Ou seja, ler as temperaturas e mostrá-las novamente?

PS: sem queres desvalorizar o que sabes porque ainda estás a aprender (todos estamos), esse exercício é bastante simples. Espera até chegares ao final do ano que vais, sem dúvida, concordar comigo.

1º o utilizador tem ke inserir o mes, depois insere as temperaturas maximas e minimas dos dias do mes e no fim aparece as temperaturas inseridas pelo utilizador.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então é exactamente o que fizeste, só que depois daquele "for" da leitura, adicionas um "for" de escrita.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem eu na funcao criei outro for para escrever só ke nao ta a funcionar o que ke falta??? :)

#include<stdio.h>
int i,j;
float matriz[31][2];

void ler_temp31(void)
{
for(i=0;i<31;i++)
{
printf("Insira a temperatura minima do dia %d\n", i+1);
scanf("%d",& matriz[i][0]);
printf("Insira a temperatura maxima do dia %d\n",i+1);
scanf("%d",& matriz[i][1]);
clrscr();
}

for(i=0;i<31;i++)
{
printf("A temperatura minima do dia %d ‚ %d\n", i+1,matriz[i][0]);
printf("A temperatura maxima do dia %d ‚ %d\n", i+1,matriz[i][1]);
clrscr();
}
}

void ler_temp30(void)
{
for(i=0;i<30;i++)
{
printf("Insira a temperatura minima do dia %d\n", i+1);
scanf("%d",& matriz[i][0]);
printf("Insira a temperatura maxima do dia %d\n",i+1);
scanf("%d",& matriz[i][1]);
clrscr();
}

for(i=0;i<30;i++)
{
printf("A temperatura minima do dia %d ‚ %d\n", i+1,matriz[i][0]);
printf("A temperatura maxima do dia %d ‚ %d\n", i+1,matriz[i][1]);
clrscr();
}

}

void ler_temp28(void)
{
for(i=0;i<28;i++)
{
printf("Insira a temperatura minima do dia %d\n",i+1);
scanf("%d",& matriz[i][0]);
printf("Insira a temperatura maxima do dia %d\n",i+1);
scanf("%d",& matriz[i][1]);
clrscr();
}

for(i=0;i<28;i++)
{
printf("A temperatura minima do dia %d ‚ %d\n", i+1,matriz[i][0]);
printf("A temperatura maxima do dia %d ‚ %d\n", i+1,matriz[i][1]);
clrscr();
}

}

void main()
{

int mes;

clrscr();
printf("Insira o mes pretendido\n\n1-Janeiro\n2-Fevereiro\n3-Mar‡o\n4-Abril\n5-Maia\n6-Junho\n7-Julho\n8-Agosto\n9-Setembro\n10-Outubro\n11-Novembro\n12-Dezembro\n\n");
scanf("%d", & mes);

switch(mes)
{
case 1: ler_temp31();
	break;

case 2: ler_temp28();
	break;

case 3: ler_temp31();
	break;

case 4: ler_temp30();
	break;

case 5: ler_temp31();
	break;

case 6: ler_temp30();
	break;

case 7: ler_temp31();
	break;

case 8: ler_temp31();
	break;

case 9: ler_temp30();
	break;

case 10: ler_temp31();
	break;

case 11: ler_temp30();
	break;

case 12: ler_temp31();
	break;

}
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não tá a funcionar ou não tá a dar valores certos?

É que a tua matriz é float e tu lês e escreves de lá com %d...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não tá a funcionar ou não tá a dar valores certos?

É que a tua matriz é float e tu lês e escreves de lá com %d...

Em vez de %d põe %f

0

Partilhar esta mensagem


Link 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