70 likes | 171 Vues
Department of Computer and Information Science, School of Science, IUPUI. CSCI N305. Arrays Declarations. Name of array (Note that all elements of this array have the same name, my_array ). -45. my_array[0]. 6. my_array[1]. 0. my_array[2]. 72. my_array[3]. 1543. my_array[4]. -89.
E N D
Department of Computer and Information Science,School of Science, IUPUI CSCI N305 Arrays Declarations
Name of array (Note that all elements of this array have the same name, my_array) -45 my_array[0] 6 my_array[1] 0 my_array[2] 72 my_array[3] 1543 my_array[4] -89 my_array[5] 0 my_array[6] 62 my_array[7] -3 my_array[8] 1 my_array[9] 6453 my_array[10] 78 my_array[11] Position number of the element within array my_array Arrays • Array • Group of consecutive memory locations • Same name and type, ex: an array of integers • To refer to an element, specify • Array name • Position number of particular element in the array • Format: array_name[position number] • First element at position 0 • n element array named c: • c[ 0 ], c[ 1 ]...c[ n – 1 ] Example: int my_array[12] my_array[0]= -45 value stored • Position number must be an integer number or an integer expression Example: my_array[1.5] ERROR!! my_array[i+j] valid if i and j are integers
Arrays (cont.) • Array elements are like normal variables my_array[8]= -3; scanf("%d", &my_array[8]); printf("%d",my_array[8]); Perform operations in subscript. If x equals 3: my_array[ 5 - 2 ] == my_array[ 3 ] == my_array[ x ] • Declaring Arrays • When declaring arrays, specify • Name • Type of array • Number of elements: arrayType arrayName[numberOfElements]; Examples: int c[ 100 ];/* reserve memory sufficient enough to store 100 elements of type integer */ float myArray[ 3284 ];
Arrays (cont.) • Declaring multiple arrays of same type: format similar to regular variables Example: int b[ 100 ], x[ 27 ]; • Arrays may be declared to contain other data types Example: int a[ 100 ]; float b[ 100 ]; char c[ 100 ]; /* Strings are stored by using character arrays */ Example: #include <stdio.h> /* a simple program that uses arrays */ main( { int i, array_int[100]; for (i=0; i<100; i++) array_int[i]=0; for (i=0; i<100; i++) printf(“element %d: %d\n”, i, array_int[i]); }
Arrays (cont.) • Initializers int n[5] = {1, 2, 3, 4, 5}; Example:main() { int i, a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; for (i=0; i<10; i++) printf(“Element: %d\n”, a[i]); } • If there are fewer initializations than elements in the array, then the remaining elements are automatically initialized to 0. int n[5] = {0}/* All elements 0 */ int a[10] = {1, 2} /* a[2] to a[9] are initialized to zeros */ int b[5] = {1, 2, 3, 4, 5, 6} /* syntax error */ • C arrays have no bounds checking • If size omitted, initializers determine it int n[ ] = { 1, 2, 3, 4, 5 }; /* 5 initializers, therefore 5 element array */ • Scalable Arrays: a better programming style #define SIZE 10 int c[SIZE]; /* defines a symbolic constant size with value 10 */
Arrays (cont.) Example: #include <stdio.h> #define SIZE 100 main() { int i, a[SIZE]; int sum = 0; … for (i=0; i < SIZE; i++) sum = sum + a[i]; printf(“sum: %d\n, sum); }
1 /* Fig. 6.8: fig06_08.c 2 Histogram printing program */ 3 #include <stdio.h> 4 #define SIZE 10 5 6 int main() 7 { 8 int n[ SIZE ] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 }; 9 int i, j; 10 11 printf( "%s%13s%17s\n", "Element", "Value", "Histogram" ); 12 13 for ( i = 0; i <= SIZE - 1; i++ ) { 14 printf( "%7d%13d ", i, n[ i ]) ; 15 16 for ( j = 1; j <= n[ i ]; j++ ) /* print one bar */ 17 printf( "%c", '*' ); 18 19 printf( "\n" ); 20 } 21 22 return 0; 23 } 1. Initialize array 2. Loop 3. Print Program output Element Value Histogram 0 19 ******************* 1 3 *** 2 15 *************** 3 7 ******* 4 11 *********** 5 9 ********* 6 13 ************* 7 5 ***** 8 17 ***************** 9 1 *