why have to write c## for user creation in oracle 12c
You have a container database and you are in the CDB$ROOT container.

In the root container, you can create only common users.

Local Users in a CDB


  A local user cannot be created in the root.


The name of common users must start with c##.

Common Users in a CDB


  "The name of every user-created common user must begin with the
  characters c## or C##. (Oracle-supplied common user names do not have
  this restriction.)"


For an overview of users in a container database, read Overview of Commonality in a CDB