Maxs homepage

Main Branches

Contact   Publications   Talks   Grants   Teaching   Mathematics   Computer   Images   Private   Links  

A C program, that prints itself (2)

void main(void)
{
  char a[10][256];
  int i;
  strcpy(a[0],"void main(void)");
  strcpy(a[1],"{");
  strcpy(a[2],"  char a[10][256];");
  strcpy(a[3],"  int i;");
  strcpy(a[4],"  for (i = 0;i <= 3;i++) puts(a[i]);");
  strcpy(a[5],"  for (i = 0;i <= 9;i++) { printf(a[8],i,(char) 34,a[i],(char) 34); puts(a[9]); }");
  strcpy(a[6],"  for (i = 4;i <= 7;i++) puts(a[i]);");
  strcpy(a[7],"}");
  strcpy(a[8],"  strcpy(a[%i],%c%s%c);");
  strcpy(a[9],"");
  for (i = 0;i <= 3;i++) puts(a[i]);
  for (i = 0;i <= 9;i++) { printf(a[8],i,(char) 34,a[i],(char) 34); puts(a[9]); }
  for (i = 4;i <= 7;i++) puts(a[i]);
}