Chyba v kóde

Programovacie jazyky, rady, poradňa...
anyway
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 297
Registrovaný: 12 dec 2009, 18:38
Bydlisko: Nuuk, Greenland (prechodne BA)

Re: Chyba v kóde

Príspevok od používateľa anyway »

Nazdar, program by mal inicializovat vsetky prvky v poli "arr" a funkcia sum_array by ich mala spocitat, ale outputuje mi to to bezvýznamné hodnoty, ktoré sa po každom spustení programu menia. V com robim chybu? A preco su vysledne hodnotu zakazdym ine?
Dakujem za pomoc. :)

Kód: Vybrať všetko

#include <stdio.h>
#define RE 7

 int sum_array(int a[][RE], int n);
 int main(void)
 {
 int i, k;
 int arr[5][7];

 for(i = 0; i < 5; i++)     
   for(k = 0; k < 7; k++)   
     arr[i][k] = 1;

 printf("%d", sum_array(arr[RE], 5));
 }

 int sum_array(int a[][RE], int n)
{


 int u, P;
 int sum = 0;
 for(u = 0; u < n; u++)
   for(p = 0; p < RE; p++)
     sum += a[u][p];

return sum;

}
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Chyba v kóde

Príspevok od používateľa BX »

Nevidím, že by si funkcii predával dvojrozmerné pole ako očakáva.
Dokonca jej predávaš arr[7], čo ani neexistuje. Celé zle.
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: Chyba v kóde

Príspevok od používateľa metthal »

Prosim ta ak pouzivas GCC kompilator, hod si tam flag -Wall aby ti to pisalo vsetky warningy, lebo ja netusim z akeho dovodu davas funkcii sum_array parameter jednorozmerne pole, ak tam mas jasne definovane ze parameter ma byt 2 rozmerne pole.

Warning v tomto pripade vyzera asi tak nejak ze "passing parameter of type int[7] to parameter of type int*[7]"

Takze len zmen riadok

Kód: Vybrať všetko

printf("%d", sum_array(arr[RE], 5));
za

Kód: Vybrať všetko

printf("%d", sum_array(arr, 5));
BTW: Netusil som ze niekto dokaze aj takto jednoduchy kod riesit tak zlozito. Mal by si pouvazovat nad tym ked pises kod, je dost chaoticky.
anyway
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 297
Registrovaný: 12 dec 2009, 18:38
Bydlisko: Nuuk, Greenland (prechodne BA)

Re: Chyba v kóde

Príspevok od používateľa anyway »

Dakujem, aj za ten tip s upozorneniami.
Nespravne som tomu porozumel. To bol len experiment na zistenie predavania viacrozmernych poli funkcii, tak preto takou nepraktickou cestou.
Napísať odpoveď