Jump to content

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


bunark

Recommended Posts

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.  😛

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;

}
}
Link to comment
Share on other 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.

Link to comment
Share on other 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.

Link to comment
Share on other 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;

}
}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.