кажется, что sum3 var повторно инициализируется в 0 внутри цикла вычислений, плюс проверка равенства по диагональной сумме должна быть вне цикла.
Я бы переработал это следующим образом:
//For Diagonals
sum = 0;
sum3 = 0;
for (row = 0; row < n; row++) {
sum += square[row][row];
sum3 += square[row][n - 1 - row];
}
if (sum == sum3)
boolean = 1;
else {
return FALSE;
}
Кстати, я немного упростил вычисление диагонали, так как оно линейное, нет необходимости в 2 вложенных циклах.
Я обнаружил некоторые другие ошибки в финальных проверках:
-0 не должно быть действительным значением
-обращение, а не просто разрыв (существует только внутренний цикл, внешний цикл продолжается)
for (row = 0; row < n; row++) {
for (col = 0; col < n; col++) {
if(square[row][col] > n*n || square[row][col] <= 0) {
return FALSE;
}
}
}
//Check for Repeating Numbers
int storedNumbers[n * n];
for (row = 0; row < n; row++) {
for(col = 0; col < n; col++) {
storedNumbers[row + n * col] = square[row][col];
}
}
Затем отсканируйте сохраненные номера на наличие дубликатов. Поиск повторяющихся значений в массиве
ура
Эта ссылка должна ответить на ваш вопрос - http://msdn.microsoft.com/en-us/library/s6938f28(VS.80).aspx
Нет, нет никакого конструктора копии, эквивалентного в C#. То, что Вы передаете (значением) ссылка .
ICloneable
также опасно, так как это плохо определяется, глубоко ли это по сравнению с мелким (плюс он, очень хорошо не поддерживается). Другая опция состоит в том, чтобы использовать сериализацию, но снова, который может быстро подойти к концу намного больше данных, чем Вы предназначили.
, Если беспокойство - то, что Вы не хотите метод, вносящий изменения, Вы могли считать создание класса неизменным. Тогда никто не может сделать ничего противного к нему.
Как уже объяснено, нет никакого эквивалента конструкторам копии C++.
Другая техника состоит в том, чтобы использовать дизайн, где объекты неизменны. Для неизменных объектов нет никакого (семантического) различия между передачей ссылки и копией. Это - путь Система. Строка разработана. Другие системы (особенно функциональные языки) применяют эту технику намного больше.