CSC161 2010F Imperative Problem Solving
[Skip to Body]
Primary:
[Front Door]
[Schedule]
-
[Academic Honesty]
[Instructions]
Current:
[Outline]
[EBoard]
-
[Assignment]
[Lab]
Groupings:
[EBoards]
[Assignments]
[Examples]
[Exams]
[Handouts]
[Labs]
[Outlines]
[Readings]
Related Courses:
[CSC195 2003S (Rebelsky)]
[CSC161 2009F (Coahran)]
[CSC161 2010S (Walker)]
Misc:
[SamR]
[ISO]
[GNU Coding Standards]
Summary: In today's laboratory, we explore issues pertaining to mutli-dimensional arrays.
Contents:
a. Create a directory for this lab.
b. Add the standard Makefile to that directory. (Note that the -Wall
flag will give you warnings for some of the code we provide. You can
safely ignore some of the warnings.)
Here is a sample initialization of a one-dimensional array of integers.
int ant[5] = { 5, 2, 7, 3, 4 };
Figure out how to initialize the two-dimensional array bat
so that the row zero contains 8, 16, 32, and 64; row one contains
5, 7, 9, and 11; and row two contains 0, 1, 2, 3.
int bat[3][4] = figure-this-out;
Suppose we've declared bat
as above and cow
and i
as follows:
int *cow; int i;
a. What do you expect the effect of the following code to be?
cow = (int *) bat; for (i = 0; i < 12; i++) { printf("cow[%d]: %d\n", i, cow[i]); } // for
b. Verify your results experimentally.
Consider again the declaration of bat
above.
a. What values do you expect to get for the following?
printf ("bat[0][4] = %d\n", bat[0][4]); printf ("bat[0][7] = %d\n", bat[0][7]); printf ("bat[1][7] = %d\n", bat[1][7]); printf ("bat[2][4] = %d\n", bat[2][4]);
b. Check your answer experimentally.
Consider the following code.
int rabbit[2][3] = { 1, 2, 3, 4, 5, 6 }; int r, c; for (r = 0; r < 2; r++) for (c = 0; c < 3; c++) printf ("rabbit[%d,%d] = %d\n", r, c, rabbit[r][c]);
a. What do you expect to happen when you try to compile this code?
b. Check your answer experimentally.
c. What do you expect to happen when you try to run this code?
d. Check your answer experimentally.
a. Suppose a
is a NxM array. Write instructions for
printing a
as a grid. For example, for rabbit
above, we might print
1 2 3 4 5 6
b. Rewrite your code to work with rabbit
.
c. Rewrite your code to work with bat
.
Consider the following declaration of a three-dimensional array:
int chinchilla[2][3][4];
a. How many elements does chinchilla
have?
b. Check your answer with sizeof
.
c. Can one initialize chincilla
while declaring it?
d. Check your answer experimentally.
e. Where in memory is chinchilla[i][j][k]
?
f. How would you verify your previous answer?
Write a function, printIntMatrix (int rows, int cols, int matrix[rows][cols])
, that prints a matrix as in problem 5.
Monday, 17 February 2003 [Samuel A. Rebelsky]
http://www.cs.grinnell.edu/~rebelsky/Courses/CS195/2003S/Labs/arrays.html
.
Tuesday, 2 November 2010 [Samuel A. Rebelsky]
http://www.cs.grinnell.edu/~rebelsky/Courses/CSC161/2010F/Labs/multi-arrays-lab.html
.
[Skip to Body]
Primary:
[Front Door]
[Schedule]
-
[Academic Honesty]
[Instructions]
Current:
[Outline]
[EBoard]
-
[Assignment]
[Lab]
Groupings:
[EBoards]
[Assignments]
[Examples]
[Exams]
[Handouts]
[Labs]
[Outlines]
[Readings]
Related Courses:
[CSC195 2003S (Rebelsky)]
[CSC161 2009F (Coahran)]
[CSC161 2010S (Walker)]
Misc:
[SamR]
[ISO]
[GNU Coding Standards]
Disclaimer:
I usually create these pages on the fly
, which means that I rarely
proofread them and they may contain bad grammar and incorrect details.
It also means that I tend to update them regularly (see the history for
more details). Feel free to contact me with any suggestions for changes.
This document was generated by
Siteweaver on Tue Nov 2 10:48:01 2010.
The source to the document was last modified on Tue Nov 2 10:48:00 2010.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CSC161/2010F/Labs/multi-arrays-lab.html
.