tablica dwuwymiarowa / sumowanie

0

Witam. Poniżej przedstawiony jest przykładowy kod z książki, jednak podczas kompilacji okazuje się, że program wcale nie sumuje wartości z wierszy, a jedynie ich pierwsze wartości. Bardzo proszę o wskazówkę, ponieważ starałem się rozwiązać to jakoś za pomocą kodu podanego przez "Krycho" w jednym z podobnych wątków http://ideone.com/K3xVKr , ale bezskutecznie.

Chciałbym wiedzieć dlaczego ten kod poniżej nie wykonuje obliczeń poprawnie, mimo że kod jest napisany sensownie, a przynajmniej tak mi się zdaję :).

#include <stdio.h>
#define MIESIACE 12
#define LATA 5
int main(void)

{
	const float deszcz[LATA][MIESIACE] = {
	{10.2, 8.1, 6.8, 4.2, 2.1, 1.8, 0.2, 0.3, 1.1, 2.3, 6.1, 7.4},
	{9.2, 9.8, 4.4, 3.3, 2.2, 0.8, 0.4, 0.0, 0.6, 1.7, 4.3, 5.2},
	{6.6, 5.5, 3.8, 2.8, 1.6, 0.2, 0.0, 0.0, 0.0, 1.3, 2.6, 4.2},
	{4.3, 4.3, 4.3, 3.0, 2.0, 1.0, 0.2, 0.2, 0.4, 2.4, 3.5, 6.6},
	{8.5, 8.2, 1.2, 1.6, 2.4, 0.0, 5.2, 0.9, 0.3, 0.9, 1.4, 7.2}
	};
	
	int rok, miesiac;
	float podsuma, suma;
	
	printf(" ROK      OPADY (w cm.)\n");
	for (rok = 0, suma = 0; rok < LATA; rok++)
	{
		for (miesiac = 0, podsuma = 0; miesiac < MIESIACE; miesiac++);
			podsuma += deszcz[rok][miesiac];						/* dokładnie ten fragment kodu */
		printf("%5d %12.1f\n", 1995 + rok, podsuma);
		suma += podsuma;
	}
	printf("\nRoczna srednia wynosi %.1f cm.\n\n", suma/LATA);
	printf("SREDNIE MIESIECZNE:\n\n");
	printf("  Sty  Lut  Mar  Kwi  Maj  Cze  Lip  Sie  Wrz  Paz  Lis  Gru\n\n");
	
	for (miesiac = 0; miesiac < MIESIACE; miesiac++)
	{
		for (rok = 0, podsuma = 0; rok < LATA; rok++)
			podsuma += deszcz[rok][miesiac];
			printf("%5.1f", podsuma/LATA);
	}
	printf("\n");
	return 0;
}
3

for (miesiac = 0, podsuma = 0; miesiac < MIESIACE; miesiac++);
średnik na końcu.

Gdybyś korzystał z nowego gcc dostałbyś warning za misleading indentation.

0

Wow...siedziałem nad tym aż nazbyt długo, a to taka głupota.
Dziękuję bardzo :) !!!

1 użytkowników online, w tym zalogowanych: 0, gości: 1