#include #include #include #include void main() { clrscr(); int pn,i,j,z=0,c,lsec,*shr,*sec; FILE *fp; printf("\n Enter the length of the secret:"); scanf("%d",&lsec); printf("\n How many particpant to share:"); scanf("%d",&pn); char **flnm; flnm=(char **)malloc((pn) *sizeof(char *)); for(i=0;i<=pn+1;i++) flnm[i]=(char *)malloc((6) *sizeof(char)); for(i=1;i<=pn;i++) { printf("\n Enter the filename for:"); scanf("%s",&flnm[i][0]); } fp=fopen(flnm[1],"r"); while(fscanf(fp,"%d",&c) != EOF) z++; fclose(fp); //printf("%d",z); int tmp=z/lsec; //printf("(%d)",tmp); shr=(int *)malloc((pn*z+1) *sizeof(int)); printf("\n"); int k=1; for(i=1;i<=pn;i++) { fp=fopen(flnm[i],"r"); while(fscanf(fp,"%d",&c) != EOF) { shr[k]=c; //printf("%d",c); k++; } fclose(fp); } //printf("(%d,%d)",k,z*pn); printf("\n"); for(i=1;i<=pn*z;i++) { // printf("%d",shr[i]); if(i%z==0) printf("\n"); } sec=(int *)malloc((z+1) *sizeof(int)); for(i=1;i<=z;i++) { sec[i]=0; } printf("\n"); for(i=1;i<=z;i++) { for(j=i;j<=pn*z;j+=z) { sec[i]=(sec[i]+shr[j]); } if(sec[i]!=0) sec[i]=1; else sec[i]=0; // printf("%d",sec[i]); } int l,x=1,wt=0,*secret; secret=(int *)malloc((lsec+1) *sizeof(int)); j=1; //finding the wt of each block for(l=1;l<=lsec;l++) { do { if(sec[x]==1) wt++; x++; j++; }while(j<=tmp); secret[l]=wt; //printf("\t(%d)",secret[l]); wt=0; j=1; } //finding the maximum wt. int MAX=secret[1]; for(j=1;j<=lsec;j++) { if(MAX