ecet 264 c programming with applications
DESCRIPTION
ECET 264 C Programming with Applications. Lecture 11 C Arrays and Applications Paul I. Lin Professor of Electrical & Computer Engineering Technology http://www.etcs.ipfw.edu/~lin. Lecture 11 – Array Applications. Determine Size of Arrays Passing Arrays to Functions Searching Arrays - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/1.jpg)
Paul I Lin 1
ECET 264 C Programming with
Applications
Lecture 11
C Arrays and Applications Paul I. Lin
Professor of Electrical & Computer Engineering Technology
http://www.etcs.ipfw.edu/~lin
![Page 2: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/2.jpg)
Paul I Lin 2
Lecture 11 – Array Applications
Determine Size of Arrays Passing Arrays to Functions Searching Arrays Multiple Subscripted Arrays Programming Applications
![Page 3: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/3.jpg)
Paul I Lin 3
Determining the Sizes and Bounds of
Arrays Array size Must be determined at design time Array boundary must be checked at run-
time sizeof operatorExamples
Determine the size of LCD array• sizeof(display_LCD)/sizeof(char)
Determine the size of data array• sizeof(data)/sizeof(int)
![Page 4: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/4.jpg)
Paul I Lin 4
Example 11 - 1
/* while0.c - Accessing data arrays using a while() loop and describe out of boundary*/
#include <stdio.h>// define format string#define FORMAT "data[%d] = %d,\ d[%d] = %d\n", i,data[i],i,d[i]
#define N 6static int data[] = { 1,2,3,4,5,6 }; // static array
definitionvoid main(){ int d[N], i, j, k; i = 0; j = 1; k = 2;
![Page 5: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/5.jpg)
Paul I Lin 5
while(i < N) {
d[i] = data[i] * 2; printf(FORMAT); i++;
}
/* Try access the array outside its boundary */ printf(FORMAT); // printf("data[%d] = %d,\ d[%d] = %d\n", i,data[i],i,d[i]) i++; printf(FORMAT);}
Example 11 – 1 (continue)
![Page 6: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/6.jpg)
Paul I Lin 6
Output:
data[0] = 1, d[0] = 2
data[1] = 2, d[1] = 4
data[2] = 3, d[2] = 6
data[3] = 4, d[3] = 8
data[4] = 5, d[4] = 10
data[5] = 6, d[5] = 12
data[6] = 1635017060, d[6] = 6618680
data[7] = 1566844251, d[7] = 4199065
Example 11 - 1 (continue)
![Page 7: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/7.jpg)
Paul I Lin 7
Passing arrays to functions
To pass an array to a function - the name of the array is passed
To pass a single element of an array to a function - simply pass the name of the array followed by the subscript of the particular element.
C passes arrays to functions by reference – the called functions can modify the element values in the caller’s original arrays.
The name of the array is actually the address of the first element of the array
![Page 8: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/8.jpg)
Paul I Lin 8
Passing arrays to functions (continue)
When the called function modifies array elements in its function body, it is modifying the actual elements of the array in their original memory location.
To receive an array argument, the function’s parameter list must specify that an array will be received. The size of that array is also needed.
An example:
int findmax(int this_array[ ], int size);
int findmax(int *this_array, int size)
![Page 9: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/9.jpg)
Paul I Lin 9
Example 11 - 2 /*A simple program uses functions for swapping and
printing data elements in a two-dimensional array. */#include <stdio.h>void swap(int *, int *); /* Function Prototypes */void print(void); /* Function Prototypes */static int data[2][2] = { {1, 2}, {3, 4}};void main(){ int x, y; puts("\nBefore swapping"); print(); swap(&data[0][0], &data[1][1]); swap(&data[0][1], &data[1][0]); puts("\nAfter swapping"); print();}
![Page 10: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/10.jpg)
Paul I Lin 10
Example 11 - 2 (continue)
void swap(int *a, int *b){ int temp; temp = *a; *a = *b; *b = temp;}void print(void){ int r, c; for(r = 0; r < 2; r++) for(c = 0; c < 2; c++) { printf("\ndata[%d][%d] = %d",r,c,data[r][c]); }}
![Page 11: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/11.jpg)
Paul I Lin 11
Output:
Before swapping After swappingdata[0][0] = 1 data[0][0] = 4data[0][1] = 2 data[0][1] = 3data[1][0] = 3 data[1][0] = 2data[1][1] = 4 data[1][1] = 1
Example 11 - 2 (continue)
![Page 12: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/12.jpg)
Paul I Lin 12
Example 11 - 3
/* Passing arrays and individual array elements to functions */
#include <stdio.h>#define SIZE 5
/* function prototypes */void modifyArray( int b[], int size ); void modifyElement( int e );
/* function main begins program execution */int main(){ int a[ SIZE ] = {0, 1, 2, 3, 4}; /* initialize a */ int i; /* counter */
![Page 13: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/13.jpg)
Paul I Lin 13
Example 11 - 3 (continue)
printf( "Effects of passing entire array by reference:\n\nThe " "values of the original array are:\n" );
/* output original array */ for ( i = 0; i < SIZE; i++ ) { printf( "%3d", a[ i ] ); } /* end for */ printf( "\n" );
/* pass array a to modifyArray by reference */ modifyArray( a, SIZE ); printf( "The values of the modified array are:\n" );
![Page 14: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/14.jpg)
Paul I Lin 14
Example 11 - 3 (continue)
/* output modified array */ for ( i = 0; i < SIZE; i++ ) { printf( "%3d", a[ i ] ); } /* end for */
/* output value of a[ 3 ] */ printf( "\n\n\nEffects of passing array element " "by value:\n\nThe value of a[3] is %d\n", a[ 3 ] ); modifyElement( a[ 3 ] ); /* pass array element a[ 3 ] by value */
/* output value of a[ 3 ] */ printf( "The value of a[ 3 ] is %d\n", a[ 3 ] ); return 0; /* indicates successful termination */} /* end main */
![Page 15: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/15.jpg)
Paul I Lin 15
Example 11 - 3 (continue)
/* in function modifyArray, "b" points to the original array "a" in memory */
void modifyArray( int b[], int size ){ int j; /* counter */ /* multiply each array element by 2 */ for ( j = 0; j < size; j++ ) { b[ j ] *= 2; // b[ j ] = b[j ] * 2; } /* end for */} /* end function modifyArray */
/* in function modifyElement, "e" is a local copy of array element a[ 3 ] passed from main */
void modifyElement( int e ){ /* multiply parameter by 2 */ printf( "Value in modifyElement is %d\n", e *= 2 );} /* end function modifyElement */
![Page 16: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/16.jpg)
Paul I Lin 16
Example 11 - 3 (continue)
![Page 17: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/17.jpg)
Paul I Lin 17
Sorting Elements in Arrays
Sorting is the process of rearranging the elements of an array into numerical order (either ascending or descending).• Bubble sort, Selection sort, Quick sort, etc• Min, Max elements• Help data analysis
![Page 18: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/18.jpg)
Paul I Lin 18
Sorting Elements in Arrays
After the sorting• min = a[ 0 ] – smallest element• Max = a[size -1] -- largest element• Middle element
Using bubble sort (sinking sort) – the smaller value upward to the top while the larger values sink to the bottom of the array
Bubble sort is performed by the two nested for loops and a swap function
![Page 19: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/19.jpg)
Paul I Lin 19
Sorting Elements in Arrays
Bubble Sort• Before sorting
d_array = [76 45 1 82 44]• After sorting
d_array = [1 44 45 76 82] Steps (repeated until no swaps take place)
• If the first element of x is greater than the second element of x, swap their positions in the vector.
• If the second element of x is greater than the third element of x, swap their positions in the vector.
• · · · · · · · · ·• If the next-to-last element of x is greater than the
last element of x, swap their positions in the vector
![Page 20: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/20.jpg)
Paul I Lin 20
Bubble Sort – Example 11-4/* bubblesort.c */#include <math.h>#include <stdio.h>#define MAX 10int no[MAX];unsigned long int next = 1;/* rand(): return psedo-random integer from 0...32767 */int rand(void) { next = next * 1103515245 + 12345; return (unsigned int) (next/65536) % 32768; }/* srand: set seed for rand() */void srand(unsigned int seed) { next = seed; }
![Page 21: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/21.jpg)
Paul I Lin 21
Bubble Sort – Example 11-4 (cont.)
void sort(int data[], int size) { int upper, lower, temp; // Loop for counting the number of passes
for(upper = 0; upper < size -1; upper++) { // Loop for comparison and exchange
for(lower = upper + 1; lower < size; lower++) {
if(data[upper] > data[lower]) { temp = data[lower]; data[lower] = data[upper]; data[upper] = temp; }
} }
![Page 22: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/22.jpg)
Paul I Lin 22
Bubble Sort – Example 11-4 (cont.)
void main() { int i, number, found; unsigned int j;
for(i = 0; i < MAX; ++i) { no[i] = j = rand(); printf("Random number(%d) =
%u\n", i,j); srand(i+2); }
/* bubble sort */ sort(no, MAX); /* display sorted array */ for(i = 0; i < MAX; ++i) { printf("no[%d] = %u\n", i, no[i]); } puts("Enter a number for searching"); scanf("%d", &number); }
![Page 23: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/23.jpg)
Paul I Lin 23
Bubble Sort – Example 11-4 (cont.)
Running Results:
Random number(0) = 16838Random number(1) = 908Random number(2) = 17747Random number(3) = 1817Random number(4) = 18655Random number(5) = 2726Random number(6) = 19564Random number(7) = 3634Random number(8) = 20472Random number(9) = 4543no[0] = 908no[1] = 1817no[2] = 2726no[3] = 3634no[4] = 4543no[5] = 16838no[6] = 17747no[7] = 18655no[8] = 19564no[9] = 20472
![Page 24: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/24.jpg)
Paul I Lin 24
Searching Elements in Arrays
Determine whether an array contains a value that matches a certain key value.
The process of finding a particular element of an array is searching.
Type of searching:• Linear search – compares each element of the array
with the search key• Brainy search – eliminates from consideration one half
of the elements in a sorted array after each comparison. The worse case of searching is n times, where n is 2 to the power of n or 2n
Examples: • An array of 1023 elements will take less then 10
comparisons using brainy search. 1023 < 210
• An array of 65536 elements will take less then 16 comparisons using brainy search. 65535 < 216
![Page 25: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/25.jpg)
Paul I Lin 25
Binary Search – Example 11-5/* bubblesort.c */#include <math.h>#include <stdio.h>#define MAX 10int no[MAX];unsigned long int next = 1;/* rand(): return psedo-random
integer from 0...32767 */int rand(void) { next = next * 1103515245 + 12345; return (unsigned int) (next/65536)
% 32768; }/* srand: set seed for rand() */void srand(unsigned int seed) { next = seed; }
void sort(int data[], int size){ int upper, lower, temp; // Loop for counting the number of passes for(upper = 0; upper < size -1; upper++) { // Loop for comparison and exchange for(lower = upper + 1; lower < size; lower++) {
if(data[upper] > data[lower]) { temp = data[lower]; data[lower] = data[upper]; data[upper] = temp; }
} }
![Page 26: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/26.jpg)
Paul I Lin 26
Binary Search – Example 11-5 (cont.)
int binsearch(int x, int no[], int n){ int low, high, mid;
low = 0; high = n-1; mid = (low + high) /2; while(low <= high && x != no[mid]) {
if(x < no[mid]) high = mid -1; else low = mid + 1; mid = (low + high)/2;}
if (x == no[mid])return mid; /* found match */
elsereturn -1; /* no match */
}
void main(){ int i, number, found; unsigned int j;
for(i = 0; i < MAX; ++i) { no[i] = j = rand(); printf("Random
number(%d) = %u\n", i,j);
srand(i+2); } /* bubble sort */ sort(no, MAX);
![Page 27: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/27.jpg)
Paul I Lin 27
Binary Search – Example 11-5 (cont.)
/* display sorted array */ for(i = 0; i < MAX; ++i) { printf("no[%d] = %u\n", i, no[i]); } puts("Enter a number for searching"); scanf("%d", &number);
/* binary search */ found = binsearch(number, no, MAX); if(found == -1) puts("Cant' find a match"); else printf("The number is in no[%d]\n", found);
}
![Page 28: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/28.jpg)
Paul I Lin 28
Binary Search – Example 11-5 (cont.)
Running ResultRandom number(0) = 16838Random number(1) = 908Random number(2) = 17747Random number(3) = 1817Random number(4) = 18655Random number(5) = 2726Random number(6) = 19564Random number(7) = 3634Random number(8) = 20472Random number(9) = 4543no[0] = 908no[1] = 1817no[2] = 2726no[3] = 3634no[4] = 4543no[5] = 16838no[6] = 17747no[7] = 18655no[8] = 19564no[9] = 20472Enter a number for searching18655The number is in no[7]
![Page 29: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/29.jpg)
Paul I Lin 29
Multiple-subscripted arrays
A common use of multiple-subscripted arrays is to represent tables of values consisting of information arranged in rows and columns.
Table or arrays require two subscripts to identify a particular element.
Example: m by n array means an array with m rows and n columns
To pass one row of a double-subscripted array to a function that receives a single-subscripted array, simply pass the name of the array followed by the subscript of that row.
![Page 30: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/30.jpg)
Paul I Lin 30
Multiple-subscripted arrays (continue)
Example 11-6: Multiple subscripted arrays can have more
than two subscripts A multiple subscripted array can be initialized
when it is defined as the same way as the 1-D example:static int my_array[4][2][3] =
{ {{1, 2, 3}, { 4, 5, 6}}, {{7, 8, 9}, {10, 11, 12}}, {{13, 14, 15}, {16, 17, 18}}, {{19, 20, 21}, {22, 23, 24}} };
![Page 31: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/31.jpg)
Paul I Lin 31
Multiple-subscripted arrays (continue)
/* Find the minimum grade of any student for the semester */int minimum( const int grades[ ][ EXAMS ], int pupils, int tests ){ int i; /* student counter */ int j; /* exam counter */ int lowGrade = 100; /* initialize to highest possible grade */ /* loop through rows of grades */ for ( i = 0; i < pupils; i++ ) { /* loop through columns of grades */ for ( j = 0; j < tests; j++ ) { if ( grades[ i ][ j ] < lowGrade ) { lowGrade = grades[ i ][ j ]; } /* end if */ } /* end inner for */ } /* end outer for */ return lowGrade; /* return minimum grade */ } /* end function minimum */
![Page 32: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/32.jpg)
Paul I Lin 32
Multiple-subscripted arrays (continue)
/*Determine the average grade for a particular student */double average( const int setOfGrades[ ], int tests ){ int i; /* exam counter */ int total = 0; /* sum of test grades */
/* total all grades for one student */ for ( i = 0; i < tests; i++ ) { total += setOfGrades[ i ]; } /* end for */ return ( double ) total / tests; /* average */} /* end function average */
![Page 33: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/33.jpg)
Paul I Lin 33
Programming Applications
Example 11-7: Arithmetic Mean of N Numbers
#define N 5main(){ float x[N] = {1.0, 2.0, 3.0, 4.0, 5.0}; float mean = 0.0; int i;
for(i = 0; i < N; i++)mean += x[i];
mean /= N; printf(“mean = %f”, mean);
}
meann
xx x x x
nii
nn
11
1 2 3 ...
![Page 34: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/34.jpg)
Paul I Lin 34
Calculating the Sine using Series Approximation
Example 11-8: A Sine function repeats itself every 2 radians. Using the sine series for an approximation of the sin(x) function:
/* Program: sinesr.c - Approximation of the sin(x) function */
#define REG_TO_RAD 180.0/PI/* sinesr.c */#include <math.h>#include <stdio.h>#define PI 3.14159#define DEG_TO_RAD (180.0/PI) /* 57.29577951308232 */
sin! ! ! ! !
...x xx x x x x
3 5 7 9 11
3 5 7 9 11
![Page 35: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/35.jpg)
Paul I Lin 35
Calculating the Sine using Series (continue)
#define x2(x) (x * x) /* Macro for x ^2 */#define x3(x) (x * x * x) /* Macro for x^3 */#define x5(x) (x*x*x*x*x) /* Macro for x^5 */#define x7(x) (x*x*x*x*x*x*x) /* Macro for x^7 */#define x9(x) (x*x*x*x*x*x*x*x*x) #define FAC3 (1*2*3) /* Factorial 3 */#define FAC5 (1*2*3*4*5) /* Factorial 5 */#define FAC7 (1*2*3*4*5*6*7) /* Factorial 7 */#define FAC9 (1*2*3*4*5*6*7*8*9)void main(void)
{
double sinSER, sinLIB, error, x, n;
printf("Deg Radians Sine Series Sin(x) Error\n");
![Page 36: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/36.jpg)
Paul I Lin 36
Calculating the Sine using Series (continue)
printf("_________________________________________\n");for(n = 0.0; n <= 90.0; n+=5.0){
x = n/DEG_TO_RAD; /*convert degree to radians*/ sinLIB = sin(x); sinSER = x - (x3(x)/FAC3)+ (x5(x)/FAC5)- (x7(x)/FAC7)+ (x9(x)/FAC9);
error = sinSER - sinLIB; printf("%5.2lf %9.8lf %9.8lf %9.8lf %+.6e\n",
n, x, sinLIB, sinSER, error); } printf("__________________________\n");
}
![Page 37: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/37.jpg)
Paul I Lin 37
Calculating the Sine using Series (continue)
Output:Deg Radians Sine Series Sin(x) Error__________________________________________________ 0.00 0.00000000 0.00000000 0.00000000 +0.000000e+000 5.00 0.08726639 0.08715567 0.08715567 +0.000000e+00010.00 0.17453278 0.17364803 0.17364803 +1.110223e-01615.00 0.26179917 0.25881883 0.25881883 +9.936496e-01520.00 0.34906556 0.34201987 0.34201987 +2.347011e-01325.00 0.43633194 0.42261793 0.42261793 +2.730927e-01230.00 0.52359833 0.49999962 0.49999962 +2.027972e-01135.00 0.61086472 0.57357601 0.57357601 +1.104591e-01040.00 0.69813111 0.64278716 0.64278716 +4.795073e-01045.00 0.78539750 0.70710631 0.70710631 +1.750303e-009
![Page 38: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/38.jpg)
Paul I Lin 38
Calculating the Sine using Series (continue)
50.00 0.87266389 0.76604397 0.76604397 +5.572419e-00955.00 0.95993028 0.81915158 0.81915160 +1.588251e-00860.00 1.04719667 0.86602496 0.86602500 +4.131496e-00865.00 1.13446306 0.90630738 0.90630748 +9.953193e-00870.00 1.22172944 0.93969227 0.93969249 +2.246074e-00775.00 1.30899583 0.96592554 0.96592602 +4.790796e-00780.00 1.39626222 0.98480755 0.98480852 +9.729044e-00785.00 1.48352861 0.99619459 0.99619648 +1.892315e-00690.00 1.57079500 1.00000000 1.00000354 +3.542551e-006___________________________________________________
![Page 39: ECET 264 C Programming with Applications](https://reader035.vdocuments.us/reader035/viewer/2022062410/56815b46550346895dc921d1/html5/thumbnails/39.jpg)
Paul I Lin 39
Summary
Determine Size of Arrays Passing Arrays to Functions Sorting/Searching Arrays Multiple Subscripted Arrays Programming Applications Next – C Pointers