Sono riuscito a risolvere,scusate se vi ho aperto un topic per nulla, ho risolto inserendo una variabile che mi piace chiamare "di compensazione" visto che a ogni iterazione bisognava incrementare di 1 il valore del sottraendo per restare in linea con gli indici :
codice:
#include <stdio.h>#include <stdlib.h>
int main()
{
int p,n,i,j,z,NumL,c,count,compnsx;
char v[20];
char aux[20];
printf("\n inserire numero di elementi,punti inclusi \n");
do
{
printf("\n\n max 20 elementi\n\n ");
scanf("%d",&n);
}
while(n<=0 || n>20);
printf("\n\n inserire sequenza parole/punti\n\n");
scanf("%s",&v);
printf(" %s ",v);
for(i=0;i<n;i++)
{
aux[i]=v[i];
}
p=0;
for(i=0;i<n;i++)
{
if(v[i]=='.')
{
p++;
}
}
c=0;
compnsx=0;
for(i=0;i<p+1;i++)
{
NumL=0;
while(v[c]!='.' && c<n)
{
NumL++;
c++;
printf(" %d-%d ",NumL,c);
}
count=c-compnsx;
NumL=NumL-compnsx;
c=c+1;
z=count-1;
for(j=count-NumL ; j<count && z>=count-NumL ; j++)
{
aux[j]=v[z];
z--;
}
compnsx++;
}
printf(" \n\n il vettore è stato riordinato nel modo seguente \n\n ");
printf("%s",aux);
system("pause");
return 0;
}