fivePointTwo() { int i = 0; int j = 1; printf("Before exchange: i = %d, j = %d\n", i, j); swap(&i, &j); printf("After exchange: i = %d, j = %d\n", i, j); // pass the address is the only way to change the value of variable from invoker. changeIt(&i); printf("After exchange i to 2008: i = %d\n", i); }
int main(void) { const int magic_number = 13017; /* test min */ int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; printf("the smallest of the first 10 natural numbers is: %d\n", minIt(a, 10)); printf("the smallest of the first 10 natural numbers is: %d\n", minRec1(a, 10)); printf("the smallest of the first 10 natural numbers is: %d\n", minRec2(a, 10)); a[3] = -1; printf("now the smallest is %d\n", minIt(a, 10)); printf("now the smallest is %d\n", minRec1(a, 10)); printf("now the smallest is %d\n", minRec2(a, 10)); /* test sqrt */ printf("the sqrt of 25 is %g\n", sqrtIt(25.0, 0, 25.0)); printf("the sqrt of 26 is %g\n", sqrtIt(26.0, 0, 26.0)); printf("the sqrt of 2 is %g\n", sqrtIt(2.0, 0, 2.0)); printf("the sqrt of 25 is %g\n", sqrtRec(25.0, 0, 25.0)); printf("the sqrt of 26 is %g\n", sqrtRec(26.0, 0, 26.0)); printf("the sqrt of 2 is %g\n", sqrtRec(2.0, 0, 2.0)); /* test strCompare */ char* s1; char* s2; s1 = "apple"; s2 = "apricot"; if (strCompare(s1, s2) < 0) { printf("\"%s\" is less than \"%s\", very good\n", s1, s2); } else { printf("oops, \"%s\" should be less than \"%s\"\n", s1, s2); } s1 = "Apple"; s2 = "apple"; if (strCompare(s1, s2) < 0) { printf("\"%s\" is less than \"%s\", very good\n", s1, s2); } else { printf("oops, \"%s\" should be less than \"%s\"\n", s1, s2); } s1 = "baby boy"; s2 = "banana"; if (strCompare(s1, s2) < 0) { printf("\"%s\" is less than \"%s\", very good\n", s1, s2); } else { printf("oops, \"%s\" should be less than \"%s\"\n", s1, s2); } s1 = "a rather silly string"; s2 = "a rather silly string"; if (strCompare(s1, s2) == 0) { printf("\"%s\" is equal to \"%s\", very good\n", s1, s2); } else { printf("oops, \"%s\" should be equal to \"%s\"\n", s1, s2); } s1 = "12345"; s2 = "12345"; if (strCompare(s1, s2) == 0) { printf("\"%s\" is equal to \"%s\", very good\n", s1, s2); } else { printf("oops, \"%s\" should be equal to \"%s\"\n", s1, s2); } s1 = "Numbers: 12345"; s2 = "12345"; if (strCompare(s1, s2) > 0) { printf("\"%s\" is greater than \"%s\", very good\n", s1, s2); } else { printf("oops, \"%s\" should be greater than \"%s\"\n", s1, s2); } s1 = "Texas"; s2 = "California"; if (strCompare(s1, s2) > 0) { printf("\"%s\" is greater than \"%s\", very good\n", s1, s2); } else { printf("oops, \"%s\" should be greater than \"%s\"\n", s1, s2); } /* test strCompare2 */ s1 = "apple"; s2 = "Apricot"; if (strCompare2(s1, s2) < 0) { printf("\"%s\" is less than \"%s\", very good\n", s1, s2); } else { printf("oops, \"%s\" should be less than \"%s\"\n", s1, s2); } s1 = "Batman!"; s2 = "bat man"; if (strCompare2(s1, s2) == 0) { printf("\"%s\" is equal to \"%s\", very good\n", s1, s2); } else { printf("oops, \"%s\" should be equal to \"%s\"\n", s1, s2); } s1 = "OMG, WTF?"; s2 = "oh my goodness, what the heck?"; if (strCompare2(s1, s2) > 0) { printf("\"%s\" is greater than \"%s\", very good\n", s1, s2); } else { printf("oops, \"%s\" should be greater than \"%s\"\n", s1, s2); } /* test maze */ srand(magic_number); makeMaze(); recodeMaze(); printf("recursive solution to the maze\n"); printMaze(); solveMazeRec(0, start_col); printMaze(); printf("\n\n\n"); printf("iterative solution to the maze\n"); srand(magic_number); makeMaze(); recodeMaze(); printMaze(); solveMazeIt(0, start_col); printMaze(); /* test Martian */ Martian change1 = changeIt(15); printf("change 1 should be 0d, 3n, 0p and is: %dd %dn %dp\n", change1.dodeks, change1.nicks, change1.pennies); Martian change2 = changeIt(0); printf("change 2 should be 0d, 0n, 0p and is: %dd %dn %dp\n", change2.dodeks, change2.nicks, change2.pennies); Martian change3 = changeIt(17); printf("change 3 should be 1d, 1n, 0p and is: %dd %dn %dp\n", change3.dodeks, change3.nicks, change3.pennies); Martian change4 = changeIt(25); printf("change 4 should be 2d, 0n, 1p and is: %dd %dn %dp\n", change4.dodeks, change4.nicks, change4.pennies); /* A very simple and obvious test of the general form of Martian * be sure and test your solution more thoroughly!!!! */ change4 = changeIt(25, 5, 12); printf("change 4 should be 2d, 0n, 1p and is: %dd %dn %dp\n", change4.dodeks, change4.nicks, change4.pennies); }