вот, на скорую руку
| Код | #include <stdio.h>
void PrintHelp(); typedef float FuncSq(float , float ); FuncSq CircleSq; FuncSq RectSq; FuncSq SquareSq;
int main(int argc, char *argv[] ) { if( argc < 2 ) { PrintHelp(); return 10; } FuncSq *pFunc; float a = 0., b = 0.; char cSym = argv[1][0]; switch( cSym ) { case 'c'://circle if( argc != 3 ) { PrintHelp(); return 20; } if( sscanf( argv[2], "%f", &a ) != 1 ) { PrintHelp(); return 20; } pFunc = CircleSq; break; case 'r'://rectangle if( argc != 4 ) { PrintHelp(); return 30; } if( sscanf( argv[2], "%f", &a ) != 1 ) { PrintHelp(); return 30; } if( sscanf( argv[3], "%f", &b ) != 1 ) { PrintHelp(); return 30; } pFunc = RectSq; break; case 's'://square if( argc != 3 ) { PrintHelp(); return 40; } if( sscanf( argv[2], "%f", &a ) != 1 ) { PrintHelp(); return 40; } pFunc = SquareSq; break; default: PrintHelp(); return 50; }
printf( "\nSquare == %g", pFunc( a, b ) ); printf("\n\nPress <Enter> to continue\n"); getc(stdin); return 0; }
void PrintHelp() { printf("\nYou must use as the first command line parameter this letters:"); printf("\nPass 'c' - for circle, 'r' - rectangle, 's' - square" ); printf("\npass as second parameter radius for circle, side for squre," ); printf("\npass as second and third parameters sides for rectangle" ); printf("\nExample: project1.exe r 10 20" ); printf("\n\nPress <Enter> to continue\n"); getc(stdin); }
float CircleSq( float r, float fake ) { return 3.14*r*r; } float RectSq( float a, float b ) { return a*b; } float SquareSq( float a, float fake ) { return a*a; }
|
|