#include int mul(int, int); int main(int argn, char* argv[]) { int a, b, p; if( argn == 3 && sscanf(argv[1], "%i", &a) && sscanf(argv[2], "%i", &b) ){ p = mul(a, b); if( p != (a * b) ){ fprintf(stderr, "incorrect result: %d != %d * %d\n", p, a, b); return 1; } } else if( argn == 2 && argv[1][0] == '-' && argv[1][1] == 'a' && argv[1][2] == '\0' ) for(a = -256; a < 256; ++a){ for(b = -256; b < 256; ++b){ p = mul(a, b); /* printf("%d * %d = %d\n", a, b, p); */ if( p != (a * b) ) fprintf(stderr, "incorrect result: %d != %d * %d\n", p, a, b); } } else fprintf(stderr, "bad arguments\n"); return 0; }