my answer to (4)
#include <stdio.h>
int main (void)
{
const char *str = "#include <stdio.h>%cint main (void)%c{%c const char *str = %c%s%c;%c printf(str, 10, 10, 10, 34, str, 34, 10, 10, 10, 10);%c return 0;%c}%c";
printf(str, 10, 10, 10, 34, str, 34, 10, 10, 10, 10);
return 0;
}
int main (void)
{
const char *str = "#include <stdio.h>%cint main (void)%c{%c const char *str = %c%s%c;%c printf(str, 10, 10, 10, 34, str, 34, 10, 10, 10, 10);%c return 0;%c}%c";
printf(str, 10, 10, 10, 34, str, 34, 10, 10, 10, 10);
return 0;
}