|
По поводу номера 1 - неясна задача. По вопросу получается, что задан массив неизвестного размера, и требуется найти среднюю длину строки и столбца. Я предполагаю, что размер массива известен, а задача состоит в нахождении среднего значения по столбцу и по строке. В этом случае логика проста:
#DEFINE ROWS <кол-во строк>
#DEFINE COLS <кол-во колонок>
int myArray[ROWS][COLS];
int tmpArr[COLS];
int i, j, sum;
// предполагаем что массив заполнен,
// инициируем вспомогательный
for (i = 0; i < COLS; i++)
tmpArr[i] = 0;
// Вычисляем среднее по строкам, и готовим
// массив под вычисление средних по столбцам
for (i = 0; i<ROWS; i++) {
sum = 0;
for (j = 0; j < COLS; j++) {
tmpArr[j] += myArray[i][j]; // суммирование столбца
sum += myArray[i][j]; // суммирование строки
}
printf("\nAverage for row %d is %f", i, (float) (sum/COLS));
}
// Среднее по столбцам
for (i = 0; i < COLS; i++)
printf("\nAverage for column %d is %f", i,
(float) (tmpArr[i]/ROWS));
Не ручаюсь, правда, за безошибочность синтакса - набирал без компилятора вообще, из головы.
По поводу второго вопроса - функция должна также получать размер массива, иначе есть все шансы грохнуться на нелегальном доступе к памяти. Кроме того, неясна формулировка "все полученные числа". В С нет множественного возврата из функции, если только она возвращает не массив. Есть вариант, когда каждый последующий вызов возвращает следующее число в массиве. Тогда что-то вот примерно такое:
int func(int *myArray, int size) {
static int position;
if (position >= size || position < 0)
position = 0;
return myArray[position++];
}
третий вопрос - цикл на использование функции circle со сначала возрастающим радиусом, а потом - так же понижающимся.
__________________
"Inter arma leges silent" - "молчат законы при звоне оружия"
|