5 Диагональная матрица и для петель

Отлично, в конце концов, это было не так сложно, мне пришлось использовать цикл do-while:

HANDLE hFind;
WIN32_FIND_DATA FindFileData;

if((hFind = FindFirstFile("C:/some/folder/*.txt", &FindFileData)) != INVALID_HANDLE_VALUE){
    do{
        printf("%s\n", FindFileData.cFileName);
    }while(FindNextFile(hFind, &FindFileData));
    FindClose(hFind);
}

Это действительно лучше, потому что я могу использовать «* .txt» и т. д., делает это гораздо легче найти некоторые конкретные типы файлов, раньше мне приходилось писать собственную функцию соответствия для этого: D

0
задан OvermanZarathustra 20 March 2019 в 13:22
поделиться

1 ответ

Похоже, что вы хотите пропустить диагонали, потому что они уже были инициализированы (выделенный здесь не правильный термин).
Глядя на ваш цикл, в котором вы устанавливаете диагонали, вы можете видеть, что каждый (i, j), который вы устанавливаете, подчиняется abs(i-j) <= 2. Например, когда вы устанавливаете элемент (i, i+2) -> abs(i-(i+2)) -> abs(-2) -> 2, который меньше или равен 2.

Таким образом, условие во втором цикле должно быть:

if (abs(i-j) <= 2)
  continue;//break will exit the loop, continue will skip to the next iteration
0
ответ дан SirGuy 20 March 2019 в 13:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: