grazie ...cavolo sei velocissimo a rispondere .. beh allora ne approfitto per un altra domanda.
l'ho riscritto cosi( per ora ho messo fissa la dimensione dell'array) e ho messo fuori dal main la struttura ma ancora mi da errore alla riga

---typedef struttura alg[DIM];
mi dice che alg non è identificato perchè proprio con quella riga lo identificassi ---
grazie per l'etuale risposta

#include <math.h>
#include <stdio.h>
#include <string.h>
#include "codice.h"

#define DIM 100

int bite(int n);
typedef struct struttura {
int bin[DIM];
char s[DIM];
};
typedef struttura alg[DIM];

alg algebra;


main()
{
int i,bit,k,n;
printf("Inserire il numero di valori dell'algebra : \n");
scanf("%d",&n);
bit=bite(n);


for(i=0;i<n;i++)
{
printf("valore algebra: ");
gets(algebra.s[i]);
for(k=0;k<bit;k++)
{
struttura.bin[bit-1-k]=n%2;
n=n/2;
}
}

for(i=0;i<n;i++)
{
printf("%c",algebra[i].s[i]);
printf("%c",algebra[i].bin[i]);
}

}



int bite(int n)
{
int k,i;
k=1;
for(i=1;k<n;i++)
{
k=k*2;
}
i=i-1;
return i;
}