Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Как выбрать произвольные элементы двумерного массива? Си

#c #массивы


Как из двумерного массива 9х9, наполненного случайными числами от -99 до 99 выбрать
элементы из закрашенной области (как на рисунке) и найти из них максимальный элемент?
Есть идеи?


    


Ответы

Ответ 1



Псевдокод max = m[0,0]; for (i = 0; i < 5; i++) { for (j = 0; j <= i; j++) { if (m[i,j] > max) max = m[i,j]; } } for (i = 5; i < 9; i++) { for (j = 0; j < 9 - i; j++) { if (m[i,j] > max) max = m[i,j]; } }

Ответ 2



Спасибо за помощь, Igor. Вот рабочий код. #include #include #include #include int Output(int *a[9]) { printf("Массив:\n"); for (int i = 0;i < 9; i++) { for (int j = 0;j < 9; j++) { printf("%4d", a[i][j]); } printf("\n"); } return 0; } int MaxInArea(int *a[9]) { int i, j, max = {0}; max = {0}; for (i = 0; i < 5; i++) { for (j = 0; j <= i; j++) { if (a[i][j] > max) max = a[i][j]; } } for (i = 5; i < 9; i++) { for (j = 0; j < 9 - i; j++) { if (a[i][j] > max) max = a[i][j]; } } printf("Максимальное число: %4d", max); printf("\n"); return 0; } int Generation(int *a[9]) { int i, j; srand(time(NULL)); for (int i = 0;i < 9;++i) { for (int j = 0;j < 9;++j) { a[i][j] = rand() % 198 - 100; } } return 0; } int main() { setlocale(LC_ALL, "Rus"); int i, **mas = { 0 }; mas = (int**)malloc(9 * sizeof(int*)); for (int i = 0;i < 9;i++) mas[i] = (int*)malloc(9 * sizeof(int)); Generation(mas); Output(mas); MaxInArea(mas); free(mas); return 0; }

Комментариев нет:

Отправить комментарий