[C] tablice

redcamper
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 7 maja 2011, o 16:38
Płeć: Mężczyzna
Lokalizacja: ds

[C] tablice

Post autor: redcamper »

Witam
mam problem z zadaniem;
w tablicy posiadającej n wierszy i m kolumn przechowywane są dane o energii elektrycznej pobranej w przeciągu jednego roku. Poszczególne wiersze odpowiadają poszczególnym odbiorcom, kolumny-miesiącom. Należy dla każdego odbiorcy określić miesiąc, w którym pobrana energia jest największa.
narazie zrobiłem tylko część zadania i nie wiem jak wyznaczyć dla każdego odbiorcy miesiąc w którym energia jest najmniejsza;

Kod: Zaznacz cały

#include <stdio.h>
#define miesiace 4
#define odbiorcy  3

int main()
{
float energia [odbiorcy][miesiace];
int i,j;
for(i=0;i<odbiorcy;i++)
{
for(j=0;j<miesiace;j++)
{
printf("
 Podaj zuzycie energii odbiorcy %d w mies %d: ",i+1,j+1);
scanf("%f",&energia [i][j]);
}
}      
system("PAUSE");
return 0;
}
przykład dla 3 odbiorcow i na 4 miesiące
Ostatnio zmieniony 14 maja 2011, o 10:12 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
abc666

[C] tablice

Post autor: abc666 »

A gdybyś miał tylko jednego odbiorcę to jakbyś określił w jakim miesiącu zużył najwięcej energii?
redcamper
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 7 maja 2011, o 16:38
Płeć: Mężczyzna
Lokalizacja: ds

[C] tablice

Post autor: redcamper »

właśnie nie wiem, może:
min=energia[j];
for(j=1;j<miesiace;i++)
{
if(energia[j]<min)min=energia[j];
}
Awatar użytkownika
mcbob
Użytkownik
Użytkownik
Posty: 479
Rejestracja: 15 gru 2008, o 19:02
Płeć: Mężczyzna
Lokalizacja: Poland
Pomógł: 69 razy

[C] tablice

Post autor: mcbob »

Dokładnie tylko na początku min=energia[0] i potem pętla startuje od 1;
Teraz wystarczy to wstawić do zewnętrznej pętli która iteruje po wszystkich odbiorcach;
redcamper
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 7 maja 2011, o 16:38
Płeć: Mężczyzna
Lokalizacja: ds

[C] tablice

Post autor: redcamper »

czyli powinno to wyglądać tak?:

#include <stdio.h>
#define miesiace 4
#define odbiorcy 3

int main()
{
float energia [odbiorcy][miesiace];
int min;
int i,j;
for(i=0;i<odbiorcy;i++)
{
for(j=0;j<miesiace;j++)
{
printf("
Podaj zuzycie energii odbiorcy %d w mies %d: ",i+1,j+1);
scanf("%f",&energia [j]);
}
}
min=energia[0];
for(j=1;j<miesiace;i++)
{
if(energia[j]<min)min=energia[j];

}

system("PAUSE");
return 0;
}
void_t
Użytkownik
Użytkownik
Posty: 103
Rejestracja: 14 maja 2011, o 18:25
Płeć: Mężczyzna
Pomógł: 26 razy

[C] tablice

Post autor: void_t »

W tej chwili widzę to tak:

Kod: Zaznacz cały


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

#define MIESIACE 4
#define ODBIORCY 2

int main()
{
	float   energia[ODBIORCY][MIESIACE];
	float	e_max, e_min = 0;
	int	e_month_max, e_month_min = 0;
	int	i, j;

	for (i = 0; i < ODBIORCY; i++) {
		for (j = 0; j < MIESIACE; j++) {
			printf("Zuzycie energii przez odbiorce %d w miesiacu %d: ", i+1, j+1);
			scanf("%f", &energia[i][j]);
			
			if ((energia[i][j] < e_min) || j < 1) {
				e_min = energia[i][j];
				e_month_min = j+1;
			}

			if (energia[i][j] > e_max) {
				e_max = energia[i][j];
				e_month_max = j+1;
			}
			puts("");
		}
		printf("Najwieksze w:	%d
", e_month_max);
		printf("Najmniejsze w:	%d
", e_month_min);
		e_max = e_min = 0;
		e_month_max = e_month_min = 0;
	}
	return 0;
}
Jeśli coś nie jest jasne - napisz, a będzie wytłumaczone.
ODPOWIEDZ