Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!batcomputer!munnari.oz.au!uniwa!nodecg!kevin From: kevin@nodecg.ncc.telecomwa.oz.au (Kevin Spencer) Newsgroups: comp.std.c Subject: Re: A small programming challenge. Keywords: Algorithm Message-ID: <1991May16.073245.12652@nodecg.ncc.telecomwa.oz.au> Date: 16 May 91 07:32:45 GMT References: <1499@loki.une.oz.au> Reply-To: kevin@nodecg.UUCP (Kevin Spencer) Organization: Network Computer Centre - Telecom Lines: 74 In article <1499@loki.une.oz.au> kevin@loki.une.oz.au (Kevin Pollard) writes: >I have written some code to accept command line parameters and apply >meaningful parameters - but I feel it is an interesting problem which >must have some neat solutions. > >The task is: > allow up to 4 parameters to be entered on the command line > (that is, progname [ p1 [ p2 [ p3 [ p4 ] ] ] ] if you know what I mean) > The program is to accept the parameters. If the a parameter > is missing then it is to default to the parameter is to > default to the one before it. > (that is, if progname x y z is entered, then the 4th parameter > is to default to z) > and so on down to the first parameter which is to have a hard > coded default. If no parameters were entered then all parmeters > would end up defaulting to this hard coded default. > > > >Does anyone out there know of some neat ways of doing this. > >This is really an algorithm problem, but since there is no algorithm >newsgroup, and I program in C on an IBM-type machine, this would be >a relevant newsgroup. > >-- >Kevin Pollard Internet: kevin@loki.une.oz.au > University of NewEngland > Northern Rivers Phone: +61 (066) 203694 >Lismore NSW Australia "My brain hurts" ----- Solution 1 ----- #include #define PAR(n) (n < argc) ? argv[n] : argv[argc-1]) main(argc,argv) int argc; char **argv; { int i; for (i=1; i<5; i++) puts(PAR(i)); } ----- Solution 2 ----- #include #include static char *args[4]; main(argc,argv) int argc; char **argv; { int i; for (i=1; i<4; i++) args[i] = (i