mi potete aiutare a capire questo comporatmento
codice:
 #include <stdio.h>
#define dim 300
float riempimento_array(char array[],int dimensione);
int main()
{
  char array[dim]="ciao";
  printf("array--> %s\n\ndimensione array-->%d\n\nriempimento--> %.2f%%",
          array,dim,riempimento_array(array,dim));
  
  getchar();
  return 0;
}
float riempimento_array(char array[],int dimensione)
{
    int a=0;             //contatore 
    while(array[a]!='\0')
    {
      a++;
      }  
   return ((a-1)*100/dimensione) ;
}
out
array--> ciao

dimensione array-->300

riempimento--> 1.00% //questo è il problema

Confrontandolo con questo
codice:
#include <stdio.h>
#define dim 300
float riempimento_array(char array[],int dimensione);
int main()
{
  char array[dim]="ciao";
  printf("array--> %s\n\ndimensione array-->%d\n\nriempimento--> %.2f%%",
          array,dim,(riempimento_array(array,dim))*100/dim);
  
  getchar();
  return 0;
}
float riempimento_array(char array[],int dimensione)
{
    int a=0;            
    while(array[a]!='\0')
    {
      a++;
      }  
   return a; ;
}
out
array--> ciao

dimensione array-->300

riempimento--> 1.33% ////questo è il problema