Оператор:
if(fopen("file1","r") == NULL && fopen("file2","r") == NULL)
будет истинным, только если оба файла не существуют, оставляя три других случая (один существует, другой существует или оба существуют) вк вам относятся одинаково.
Если вы намереваетесь просто вывести DONE
, если оба существуют, вы можете попробовать:
#include <stdio.h>
int main (void) {
FILE *fl1, *fl2;
fl1 = fopen ("file1", "r");
fl2 = fopen ("file2", "r");
if (fl1 != NULL && fl2 != NULL)
printf("DONE\n");
if (fl1 != NULL) fclose (fl1);
if (fl2 != NULL) fclose (fl2);
}
Это также избавит вас от большего, скажем, ... красочные ... синтаксические конструкции: -)