#include int dtmfi[8]={697,770,852,941,1209,1336,1477,1633}; float dtmf[8]; typedef struct { int tone,phase; float time,delta; } entry; entry sx[2000]; entry save; FILE *table; int main(int argc,char *args[]) { int i,j,k,n,flag,loops; for(i=0;i<8;i++) dtmf[i]=1.0/dtmfi[i]; n=0; for(i=0;i<8;i++) { for(k=0;k<32;k++) { for(j=0;j<4;j++) { sx[n].phase=j; /* phase nr */ sx[n].tone=i; sx[n++].time=dtmf[i]*(k+(float)j/4); } } } loops=0; again: flag=0; loops++; for(i=0;i<(n-1);i++) { if(sx[i].time>sx[i+1].time) { save=sx[i]; sx[i]=sx[i+1]; sx[i+1]=save; flag=1; } } if(flag) goto again; table=fopen("timetab.txt","wt"); for(i=1;i