/* * SPDsoft: max min from stdin */ static char __ident[] = "@(#)(c) SPDsoft, Mar 15 Feb 18:51:17"; #define VERS_STR ((char*)&__ident[4]) #include #include #include #define Boolean char void fatalError(char *name,char *str); Boolean get_options(int argc,char *argv[]); void usage(char *name); extern char *optarg; extern int optind,opterr; typedef struct { Boolean verbose; char separator[256]; } pref; pref G_Prefs; void fatalError(char *name,char *str) { fprintf(stderr, "%s: Fatal Error: %s. bye...\n",name,str); exit(-2); } main(int argc,char *argv[]) { char theString[512]; char *argt; /* argt arde */ double max[512]; double min[512]; Boolean *inited; int NF=0,i; get_options(argc,argv); if(NULL==(inited=(Boolean*)calloc((size_t)512, sizeof(Boolean)))) fatalError(argv[0],"No Memory"); while ( gets(theString) != NULL ) { argt = strtok( theString, G_Prefs.separator ); i=0; while( argt != NULL ) { if ( !inited[i] ) { max[i] = min[i] = atof(argt); inited[i]=1; } else { if( atof(argt) > max[i] ) max[i] = atof(argt); if( atof(argt) < min[i] ) min[i] = atof(argt); } argt = strtok( NULL, G_Prefs.separator ); i++; } if (i>NF) NF=i; } for(i=0;i