Почему мы требуем инициализировать MaxhourglassSum = (- 63) в данном решении проблемы? - PullRequest
2 голосов
/ 23 марта 2020

Проблема : - LINK

Формат ввода

Каждая из строк входов 6 содержит 6 пробелов- разделенные целые числа.

Ограничения

  • -9 <= a [i] [j] <= 9 </li>
  • 0 <= i, j <6 </li>

Формат вывода

Печать самой большой (максимальной) песочных часов {см. ссылку} найденную сумму в.

#include<stdio.h>
int MaxhourglassSum=(-63);

void hourglass(int a[6][6],int i,int j){
            int sum=0;
            for(int m=i;m<i+3;m++){
                for(int n=j;n<j+3;n++){
                    if((m==i+1 && n==j) || (m==i+1 && n==j+2))
                    continue;
                    else
                    sum+=a[m][n];
                }
            }
            if(sum>MaxhourglassSum)
            MaxhourglassSum =sum;
}
int main(){
    int a[6][6];
        for(int i=0;i<6;i++){
            for(int j=0;j<6;j++){
                scanf("%d",&a[i][j]);
            }
        }

        for(int i=0;i<4;i++){
            for(int j=0;j<4;j++){
                    hourglass(a,i,j);
            }
        }

        printf("%d",MaxhourglassSum);

    return 0;
}

1 Ответ

2 голосов
/ 23 марта 2020

Согласно ссылке, «песочные часы» состоят из 7 чисел, а минимальное значение для чисел составляет -9, поэтому минимально возможное значение суммы составляет 7 * (-9).

Поэтому MaxhourglassSum инициализируется значением -63. Значение будет сравниваться со следующим кандидатом и будет заменено любым большим значением.

Вы также можете инициализировать его более низким значением, например, -999 или INT_MIN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...