home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_300 / 344_02 / randmtx.c < prev    next >
Text File  |  1991-05-29  |  2KB  |  63 lines

  1. /*----------------------------------------------------------------
  2.   Main File : randmtx.exe
  3.   Author    : Bill Forseth, Fargo ND
  4.   Purpose   : generates an n(n+1) random matrix of integers
  5.   Syntax    : randmtx n [S] <where n is the size of one column,
  6.                 S is the seed (optional)>
  7.   Randomization : Standard Turbo C random functions - initialization
  8.     via system clock if no seed is specified.
  9.   Compiler  : Turbo C, v.2.0
  10.   Switches  : small model, 8086 instruction set, fp emulation.
  11. -----------------------------------------------------------------*/
  12. #include <stdlib.h>
  13. #include <stdio.h>
  14. #include <math.h>
  15. #include <time.h>
  16.  
  17. /*
  18.   Arbitrary multiplier for random generation
  19.   (ie: random(n * default_range))
  20. */
  21. #define default_range         3
  22.  
  23.  
  24. static unsigned SEED;
  25.  
  26. void write_matrix(int size)
  27. {
  28.   int i,j;
  29.  
  30.   SEED ? srand(SEED) : randomize();
  31.  
  32.   for(i=0; i < size; ++i)
  33.   {
  34.     for(j=0; j < size; ++j)
  35.       printf("%-4d",random(size*default_range));
  36.     printf("%d\n",random(size*default_range));
  37.   }
  38. }
  39.  
  40.  
  41.  
  42.  
  43. int main(int argc, char **argv)
  44. {
  45.   int size;
  46.  
  47.   if(argc > 1)
  48.   {
  49.     size = atoi(argv[1]);
  50.     if(argc > 2)
  51.       SEED = (unsigned)atoi(argv[2]);
  52.     write_matrix(size);
  53.     return 0;
  54.   }
  55.   else
  56.   {
  57.     fprintf(stderr,"\nSyntax: randmtx n [S]\n");
  58.     fprintf(stderr,"    Where n is the size of an n(n+1) A|b matrix,\n");
  59.     fprintf(stderr,"    S is the seed for the random function (optional)\n");
  60.     return 1;
  61.   }
  62. }
  63.