/* File: order.c Make a file of sorted integers to test our sorting programs. */ #include #include #include #include main(int argc, char *argv[]) { int i, r1, r2, n, n1, n2, *A ; long seed ; FILE *ofile ; /* Sanity check */ if (argc != 4) { fprintf(stderr, "Usage: order n1 n2 filename\n") ; exit(1) ; } /* Get endpoints */ r1 = sscanf(argv[1],"%d", &n1) ; r2 = sscanf(argv[2],"%d", &n2) ; if ((r1 != 1) || (r2 != 1)) { fprintf(stderr, "Both %s and %s should be integers!\n", argv[1], argv[2]) ; exit(1) ; } /* Open file */ ofile = fopen(argv[3],"wb") ; if (ofile == NULL) { printf("Could not open file: %s\n", argv[2]) ; exit(1) ; } if (n1 <= n2) { n = n2 - n1 + 1 ; A = (int *) malloc(n * sizeof(int)) ; for ( i = n1 ; i <= n2 ; i++) { A[i-n1] = i ; } } else { n = n1 - n2 + 1 ; A = (int *) malloc(n * sizeof(int)) ; for ( i = n1 ; i >= n2 ; i--) { A[n1-i] = i ; } } r1 = fwrite(A, sizeof(int), n, ofile) ; if (r1 != n) { fprintf(stderr, "Oops, only %d numbers written\n", r1) ; } fclose(ofile) ; }