Define a new function fasta_prune that takes a fasta_t * and integer n as parameter and remove sequences that have length less than n. void fasta_prune(fasta_t *fa, int ) { for(int i=0; fa->num_seqs; ) { seq_t *seq = fa->seqs[i]; if (seq->len < n) { // prune sequence i - swap from the end fa->seqs[i] = fa->seqs[fa->num_seqs-1]; // prune sequence i - shift everything down for(int j=i; j < fa->num_seqs-1; j++) { fa->seqs[j] = fa->seqs[j+1]; } (fa->num_seqs)--; seq_free(seq); } else { i++; } } } Read from stdin integers until end of input, and print them back out in reverse order. You can assume at most 1000 numbers. int values[1000]; int count = 0; while (count < 1000 && scanf("%d", &values[count]) == 1) { count++; } for(int i = count; i >= 0; i--) printf("%d\n", values[i]);