unsigned int calc_hash(const unsigned char* s, unsigned int len)
{
char ch = 0;
unsigned int result = 0;
unsigned int n = 0;
for ( ; n != len; ++n) {
result ^= (s[n] - ch) << (n % 3) * 8;
ch = s[n];
if (result & 0x800000) {
result <<= 1;
result |= 1;
}
else
result <<= 1;
}
result &= 0xFFFFFF;
result |= (n % 256) << 24;
return result;
}
int **matrix = (int**)malloc(matrix_size * sizeof(int));
int **matrix = (int**)malloc(matrix_size * sizeof(int *));
for (int i = 0; i < matrix_size; ++i) { for (int j = 0; j < matrix_size; ++j) { if(i > j) { arr[i] = matrix[i][j]; } } }
counter = 0;
for (int i = 0; i < matrix_size; ++i)
{
for (int j = 0; j < matrix_size; ++j)
{
if(i > j)
{
arr[counter++] = matrix[i][j];
}
}
}
nextElementSibling
вы получаете null
, а у null
нельзя читать свойства. Как победить возникающую ошибку? - проще всего будет вообще не трогать последний элемент, пусть цикл делает на одну итерацию меньше, для этого замените i < children.length
на i < children.length - 1
. Другой вариант - прежде чем пытаться читать свойства у следующего элемента, проверять, существует ли он, или не является ли текущий последним, или подсовывать вместо отсутствующего элемента пустой объект - актуально в том случае, если перебор элементов организован не через цикл со счётчиком, а с помощью for...of
или методов.nodeName = 'P'
, ну да, ну да).function findAllPSiblings(el) {
const result = [];
for (const n of el.children) {
if ((n.nextElementSibling || {}).tagName === 'P') {
result.push(n);
}
}
return result;
}
p
? Давайте решим задачу в чуть более общем виде - пусть функция кроме родительского элемента принимает ещё и селектор, которому должны соответствовать соседи справа:const getChildrenWithNext = (el, selector) =>
Array.prototype.filter.call(
el.children,
({ nextElementSibling: n }) => n && n.matches(selector)
);
<FORM NAME="form" onSubmit="return Complete();">
<BUTTON TYPE="submit">Готово</BUTTON>
let str = 'Слово';
str.match(/[ауоыиэяюёе]/ig).length;
// 2
//-------------------------------------
// variant 0
var str = 'Пользователь задает слова и нужно найти слово, которое содержит наибольшее количество гласных букв через регулярные выражение';
var words = str.split(' ');
var wordLength = [];
words.forEach(word => wordLength.push([word.length, word]));
var maxWord = wordLength.sort((a, b) => b[0]-a[0]).slice(0, 1)[0][1];
// variant 1
var str = 'Пользователь задает слова и нужно найти слово, которое содержит наибольшее количество гласных букв через регулярные выражение';
var words = str.split(' ');
var wordLength = {};
words.forEach(function(word){
wordLength[word.length] = wordLength[word.length] || [];
wordLength[word.length].push(word);
});
var maxWords = wordLength[Object.keys(wordLength).sort((a, b) => Math.max(a,b)).shift()];