int sum(int mas[n], int n) // (n шамасы тұрақты болу керек) int s = 0; for (int i = 0; i return s; } Көпөлшемді жиымдарды беру кезінде компиляция сатысында белгісіз
болған оның барлық өлшемдері параметрлер ретінде берілуі керек.
Функцияның ішінде жиым
бір өлшемді ретінде қабылданады, ал оның индексі
программа барысында қайта есептеледі.
Төменгі келтірілген мысалда функ-
циялар көмегімен екі екіөлшемді жиым элементерінің қосындысы есептеледі.
Мұнда
b жиымының өлшемі компиляция кезеңінде белгілі, ал
а жиымына
жады динамикалық түрде бөлінеді:
#include #include int sum(const int *a, const int nstr, const int nstb); int main(){ int b[2][2] = {{2, 2}, {4, 3}}; printf("b элементтерінің қосындысы: %d\n", sum(&b[0][0], 2, 2)); /* типтері сəйкес болмағандықтан, жиым атын sum функция- сына беруге болмайды */ int i, j, nstr, nstb, *a; printf("Бағаналар мен жолдар санын енгізіңіз: \n"); scanf("%d%d", &nstr, &nstb); а = (int *)malloc(nstr * nstb * sizeof(int)); for (i = 0; i for (j = 0; j print("а элементтерінің қомындысы: %d\n", sum(a, nstr, nstb)); 6-1140
82
return 0;} int sum(const int *a, const int nstr, const int nstb){ int i, j, s = 0; for (i = 0; i for (j = 0; j return s; } Екіөлшемді жиыммен табиғи түрде жұмыс істеу үшін жады бөлудің
альтернативті тəсілін қолдануға болады: