#include #include #include #include #include #define MAX_LINES 200 #define LINEBUF 1024 int main() { char* lines[MAX_LINES]; int n = 0; char buf[LINEBUF]; char* line; int len; //Read first line line = fgets(buf, LINEBUF, stdin); while(line != NULL && n < MAX_LINES) { //Get len of line len = strlen(line); //Create space for line char* linecpy = malloc(len+1); //Copy line strcpy(linecpy,line); //Add line to array. lines[n++] = linecpy; //Read next line line = fgets(buf, LINEBUF, stdin); } if(n > 0) { //Prepare random seed srand(time(NULL)*getpid()); //Generate random number int r = rand() % n; //Print random line fputs(lines[r],stdout); //Free all lines. int i; for(i = 0; i < n; i++) { free(lines[i]); } } return 0; }