SlideShare a Scribd company logo
1
Chapter 6 - Arrays
Outline
6.1 Introduction
6.2 Arrays
6.3 Declaring Arrays
6.4 Examples Using Arrays
6.5 Passing Arrays to Functions
6.6 Sorting Arrays
6.7 Case Study: Computing Mean, Median and Mode Using
Arrays
6.8 Searching Arrays
6.9 Multiple-Subscripted Arrays
2
6.1 Introduction

Arrays
− Structures of related data items
− Static entity – same size throughout program
− Dynamic data structures discussed in Chapter 12
3
6.2 Arrays

Array
− Group of consecutive memory locations
− Same name and type

To refer to an element, specify
− Array name
− Position number

Format:
arrayname[ position number ]
− First element at position 0
– n element array named c:
• c[ 0 ], c[ 1 ]...c[ n – 1 ]
Name of array
(Note that all
elements of this
array have the
same name, c)
Position number
of the element
within array c
c[6]
-45
6
0
72
1543
-89
0
62
-3
1
6453
78
c[0]
c[1]
c[2]
c[3]
c[11]
c[10]
c[9]
c[8]
c[7]
c[5]
c[4]
4
6.2 Arrays

Array elements are like normal variables
c[ 0 ] = 3;
printf( "%d", c[ 0 ] );
− Perform operations in subscript. If x equals 3
c[ 5 - 2 ] == c[ 3 ] == c[ x ]
5
6.3 Declaring Arrays

When declaring arrays, specify
− Name
− Type of array
− Number of elements
arrayType
arrayName[ numberOfElements ];
− Examples:
int c[ 10 ];
float myArray[ 3284 ];

Declaring multiple arrays of same type
− Format similar to regular variables
− Example:
int b[ 100 ], x[ 27 ];
6
6.4 Examples Using Arrays

Initializers
int n[ 5 ] = { 1, 2, 3, 4, 5 };
− If not enough initializers, rightmost elements
become 0
int n[ 5 ] = { 0 }

All elements 0
− If too many a syntax error is produced 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
7
1. Initialize
array
2. Loop
3. Print
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%17sn", "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 }
8
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 *
9
6.4 Examples Using Arrays

Character arrays
− String “first” is really a static array of characters
− Character arrays can be initialized using string
literals
char string1[] = "first";

Null character '0' terminates strings
• string1 actually has 6 elements
− It is equivalent to
char string1[] = { 'f', 'i', 'r', 's', 't', '0' };
− Can access individual characters
string1[ 3 ] is character ‘s’
− Array name is address of array, so & not needed for
scanf
scanf( "%s", string2 );

Reads characters until whitespace encountered

10
1. Initialize
strings
2. Print
strings
2.1 Define
loop
2.2 Print
characters
1 /* Fig. 6.10: fig06_10.c
2 Treating character arrays as strings */
3 #include <stdio.h>
4
5 int main()
6 {
7 char string1[ 20 ], string2[] = "string literal";
8 int i;
9
10 printf(" Enter a string: ");
11 scanf( "%s", string1 );
12 printf( "string1 is: %snstring2: is %sn"
13 "string1 with spaces between characters is:n",
14 string1, string2 );
15
16 for ( i = 0; string1[ i ] != '0'; i++ )
17 printf( "%c ", string1[ i ] );
18
19 printf( "n" );
20 return 0;
21 }
Enter a string: Hello there
string1 is: Hello
string2 is: string literal
string1 with spaces between characters is:
H e l l o
11
6.5 Passing Arrays to Functions

Passing arrays
− To pass an array argument to a function, specify the
name of the array without any brackets
int myArray[ 24 ];
myFunction( myArray, 24 );

Array size usually passed to function
− Arrays passed call-by-reference
− Name of array is address of first element
− Function knows where the array is stored

Modifies original memory locations

Passing array elements
− Passed by call-by-value
− Pass subscripted name (i.e., myArray[ 3 ]) to
12
6.5 Passing Arrays to Functions

Function prototype
void modifyArray( int b[], int
arraySize );
− Parameter names optional in prototype
• int b[] could be written int []
• int arraySize could be simply int
13
1. Function
definitions
2. Pass array to
a function
2.1 Pass array
element to a
function
3. Print
1 /* Fig. 6.13: fig06_13.c
2 Passing arrays and individual array elements to functions */
3 #include <stdio.h>
4 #define SIZE 5
5
6 void modifyArray( int [], int ); /* appears strange */
7 void modifyElement( int );
8
9 int main()
10 {
11 int a[ SIZE ] = { 0, 1, 2, 3, 4 }, i;
12
13 printf( "Effects of passing entire array call "
14 "by reference:nnThe values of the "
15 "original array are:n" );
16
17 for ( i = 0; i <= SIZE - 1; i++ )
18 printf( "%3d", a[ i ] );
19
20 printf( "n" );
21 modifyArray( a, SIZE ); /* passed call by reference */
22 printf( "The values of the modified array are:n" );
23
24 for ( i = 0; i <= SIZE - 1; i++ )
25 printf( "%3d", a[ i ] );
26
27 printf( "nnnEffects of passing array element call "
28 "by value:nnThe value of a[3] is %dn", a[ 3 ] );
29 modifyElement( a[ 3 ] );
30 printf( "The value of a[ 3 ] is %dn", a[ 3 ] );
31 return 0;
32 }
Entire arrays passed call-by-
reference, and can be modified
Array elements passed call-by-
value, and cannot be modified
14
3.1 Function
definitions
33
34 void modifyArray( int b[], int size )
35 {
36 int j;
37
38 for ( j = 0; j <= size - 1; j++ )
39 b[ j ] *= 2;
40 }
41
42 void modifyElement( int e )
43 {
44 printf( "Value in modifyElement is %dn", e *= 2 );
45 }
Effects of passing entire array call by reference:
The values of the original array are:
0 1 2 3 4
The values of the modified array are:
0 2 4 6 8
Effects of passing array element call by value:
The value of a[3] is 6
Value in modifyElement is 12
The value of a[3] is 6
15
6.6 Sorting Arrays

Sorting data
− Important computing application
− Virtually every organization must sort some data

Bubble sort (sinking sort)
− Several passes through the array
− Successive pairs of elements are compared

If increasing order (or identical ), no change

If decreasing order, elements exchanged
− Repeat

Example:
− original: 3 4 2 6 7
− pass 1: 3 2 4 6 7
− pass 2: 2 3 4 6 7
−

More Related Content

PPT
Arrays
PPTX
A quick introduction to R
PPTX
Java notes 1 - operators control-flow
PDF
Multi dimensional array
PPTX
Java arrays
DOCX
Data Structure Project File
PDF
VTU Data Structures Lab Manual
DOC
Ds lab manual by s.k.rath
Arrays
A quick introduction to R
Java notes 1 - operators control-flow
Multi dimensional array
Java arrays
Data Structure Project File
VTU Data Structures Lab Manual
Ds lab manual by s.k.rath

What's hot (20)

PDF
C Prog - Array
PPT
PPTX
multiple linear regression
PPT
Arrays
PDF
Data structure lab manual
PPTX
Array Introduction One-dimensional array Multidimensional array
PPTX
Arrays in java
PPTX
Arrays in C language
PPT
Java: Introduction to Arrays
PPT
array
PPTX
decision tree regression
PDF
Data structures lab manual
PDF
Data struture lab
PPTX
Java arrays
DOCX
C++ Template
PDF
Array notes
PPTX
simple linear regression
PPTX
polynomial linear regression
PDF
Pandas Cheat Sheet
PDF
C program
C Prog - Array
multiple linear regression
Arrays
Data structure lab manual
Array Introduction One-dimensional array Multidimensional array
Arrays in java
Arrays in C language
Java: Introduction to Arrays
array
decision tree regression
Data structures lab manual
Data struture lab
Java arrays
C++ Template
Array notes
simple linear regression
polynomial linear regression
Pandas Cheat Sheet
C program
Ad

Similar to Chapter 6 arrays part-1 (20)

PPTX
Data Structures - Lecture 3 [Arrays]
PPT
Array i imp
PPT
arrays
PPT
Arrays 06.ppt
PPT
Basics of Data structure using C describing basics concepts
PPTX
ppt on arrays in c programming language.pptx
PPTX
COM1407: Arrays
PPTX
INDIAN INSTITUTE OF TECHNOLOGY KANPUR ESC 111M Lec12.pptx
PDF
Lecture 2.8 Arrays.pdf
PDF
Homework Assignment – Array Technical DocumentWrite a technical .pdf
PPTX
Module 4- Arrays and Strings
PDF
[ITP - Lecture 15] Arrays & its Types
PDF
35001622067_SOUMYADIP MAITY .pdf C programming
PDF
SPL 10 | One Dimensional Array in C
PPTX
Arrays & Strings
PPT
Array THE DATA STRUCTURE. ITS THE STRUCT
PPTX
Array and functions
PDF
Chapter 13.1.7
Data Structures - Lecture 3 [Arrays]
Array i imp
arrays
Arrays 06.ppt
Basics of Data structure using C describing basics concepts
ppt on arrays in c programming language.pptx
COM1407: Arrays
INDIAN INSTITUTE OF TECHNOLOGY KANPUR ESC 111M Lec12.pptx
Lecture 2.8 Arrays.pdf
Homework Assignment – Array Technical DocumentWrite a technical .pdf
Module 4- Arrays and Strings
[ITP - Lecture 15] Arrays & its Types
35001622067_SOUMYADIP MAITY .pdf C programming
SPL 10 | One Dimensional Array in C
Arrays & Strings
Array THE DATA STRUCTURE. ITS THE STRUCT
Array and functions
Chapter 13.1.7
Ad

More from Synapseindiappsdevelopment (20)

PPTX
Synapse india elance top in demand in it skills
PPT
SynapseIndia dotnet web development architecture module
PPT
SynapseIndia dotnet module development part 1
PPT
SynapseIndia dotnet framework library
PPT
SynapseIndia dotnet development platform overview
PPT
SynapseIndia dotnet development framework
PPT
SynapseIndia dotnet web applications development
PPT
SynapseIndia dotnet website security development
PPT
SynapseIndia mobile build apps management
PPT
SynapseIndia mobile apps deployment framework internal architecture
PPT
SynapseIndia java and .net development
PPT
SynapseIndia dotnet development panel control
PPT
SynapseIndia dotnet development ajax client library
PPT
SynapseIndia php web development
PPT
SynapseIndia mobile apps architecture
PPT
SynapseIndia mobile apps deployment framework architecture
PPT
SynapseIndia mobile apps
PPT
SynapseIndia dotnet development
PPT
SynapseIndia dotnet client library Development
PPT
SynapseIndia creating asp controls programatically development
Synapse india elance top in demand in it skills
SynapseIndia dotnet web development architecture module
SynapseIndia dotnet module development part 1
SynapseIndia dotnet framework library
SynapseIndia dotnet development platform overview
SynapseIndia dotnet development framework
SynapseIndia dotnet web applications development
SynapseIndia dotnet website security development
SynapseIndia mobile build apps management
SynapseIndia mobile apps deployment framework internal architecture
SynapseIndia java and .net development
SynapseIndia dotnet development panel control
SynapseIndia dotnet development ajax client library
SynapseIndia php web development
SynapseIndia mobile apps architecture
SynapseIndia mobile apps deployment framework architecture
SynapseIndia mobile apps
SynapseIndia dotnet development
SynapseIndia dotnet client library Development
SynapseIndia creating asp controls programatically development

Chapter 6 arrays part-1

  • 1. 1 Chapter 6 - Arrays Outline 6.1 Introduction 6.2 Arrays 6.3 Declaring Arrays 6.4 Examples Using Arrays 6.5 Passing Arrays to Functions 6.6 Sorting Arrays 6.7 Case Study: Computing Mean, Median and Mode Using Arrays 6.8 Searching Arrays 6.9 Multiple-Subscripted Arrays
  • 2. 2 6.1 Introduction  Arrays − Structures of related data items − Static entity – same size throughout program − Dynamic data structures discussed in Chapter 12
  • 3. 3 6.2 Arrays  Array − Group of consecutive memory locations − Same name and type  To refer to an element, specify − Array name − Position number  Format: arrayname[ position number ] − First element at position 0 – n element array named c: • c[ 0 ], c[ 1 ]...c[ n – 1 ] Name of array (Note that all elements of this array have the same name, c) Position number of the element within array c c[6] -45 6 0 72 1543 -89 0 62 -3 1 6453 78 c[0] c[1] c[2] c[3] c[11] c[10] c[9] c[8] c[7] c[5] c[4]
  • 4. 4 6.2 Arrays  Array elements are like normal variables c[ 0 ] = 3; printf( "%d", c[ 0 ] ); − Perform operations in subscript. If x equals 3 c[ 5 - 2 ] == c[ 3 ] == c[ x ]
  • 5. 5 6.3 Declaring Arrays  When declaring arrays, specify − Name − Type of array − Number of elements arrayType arrayName[ numberOfElements ]; − Examples: int c[ 10 ]; float myArray[ 3284 ];  Declaring multiple arrays of same type − Format similar to regular variables − Example: int b[ 100 ], x[ 27 ];
  • 6. 6 6.4 Examples Using Arrays  Initializers int n[ 5 ] = { 1, 2, 3, 4, 5 }; − If not enough initializers, rightmost elements become 0 int n[ 5 ] = { 0 }  All elements 0 − If too many a syntax error is produced 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
  • 7. 7 1. Initialize array 2. Loop 3. Print 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%17sn", "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 }
  • 8. 8 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 *
  • 9. 9 6.4 Examples Using Arrays  Character arrays − String “first” is really a static array of characters − Character arrays can be initialized using string literals char string1[] = "first";  Null character '0' terminates strings • string1 actually has 6 elements − It is equivalent to char string1[] = { 'f', 'i', 'r', 's', 't', '0' }; − Can access individual characters string1[ 3 ] is character ‘s’ − Array name is address of array, so & not needed for scanf scanf( "%s", string2 );  Reads characters until whitespace encountered 
  • 10. 10 1. Initialize strings 2. Print strings 2.1 Define loop 2.2 Print characters 1 /* Fig. 6.10: fig06_10.c 2 Treating character arrays as strings */ 3 #include <stdio.h> 4 5 int main() 6 { 7 char string1[ 20 ], string2[] = "string literal"; 8 int i; 9 10 printf(" Enter a string: "); 11 scanf( "%s", string1 ); 12 printf( "string1 is: %snstring2: is %sn" 13 "string1 with spaces between characters is:n", 14 string1, string2 ); 15 16 for ( i = 0; string1[ i ] != '0'; i++ ) 17 printf( "%c ", string1[ i ] ); 18 19 printf( "n" ); 20 return 0; 21 } Enter a string: Hello there string1 is: Hello string2 is: string literal string1 with spaces between characters is: H e l l o
  • 11. 11 6.5 Passing Arrays to Functions  Passing arrays − To pass an array argument to a function, specify the name of the array without any brackets int myArray[ 24 ]; myFunction( myArray, 24 );  Array size usually passed to function − Arrays passed call-by-reference − Name of array is address of first element − Function knows where the array is stored  Modifies original memory locations  Passing array elements − Passed by call-by-value − Pass subscripted name (i.e., myArray[ 3 ]) to
  • 12. 12 6.5 Passing Arrays to Functions  Function prototype void modifyArray( int b[], int arraySize ); − Parameter names optional in prototype • int b[] could be written int [] • int arraySize could be simply int
  • 13. 13 1. Function definitions 2. Pass array to a function 2.1 Pass array element to a function 3. Print 1 /* Fig. 6.13: fig06_13.c 2 Passing arrays and individual array elements to functions */ 3 #include <stdio.h> 4 #define SIZE 5 5 6 void modifyArray( int [], int ); /* appears strange */ 7 void modifyElement( int ); 8 9 int main() 10 { 11 int a[ SIZE ] = { 0, 1, 2, 3, 4 }, i; 12 13 printf( "Effects of passing entire array call " 14 "by reference:nnThe values of the " 15 "original array are:n" ); 16 17 for ( i = 0; i <= SIZE - 1; i++ ) 18 printf( "%3d", a[ i ] ); 19 20 printf( "n" ); 21 modifyArray( a, SIZE ); /* passed call by reference */ 22 printf( "The values of the modified array are:n" ); 23 24 for ( i = 0; i <= SIZE - 1; i++ ) 25 printf( "%3d", a[ i ] ); 26 27 printf( "nnnEffects of passing array element call " 28 "by value:nnThe value of a[3] is %dn", a[ 3 ] ); 29 modifyElement( a[ 3 ] ); 30 printf( "The value of a[ 3 ] is %dn", a[ 3 ] ); 31 return 0; 32 } Entire arrays passed call-by- reference, and can be modified Array elements passed call-by- value, and cannot be modified
  • 14. 14 3.1 Function definitions 33 34 void modifyArray( int b[], int size ) 35 { 36 int j; 37 38 for ( j = 0; j <= size - 1; j++ ) 39 b[ j ] *= 2; 40 } 41 42 void modifyElement( int e ) 43 { 44 printf( "Value in modifyElement is %dn", e *= 2 ); 45 } Effects of passing entire array call by reference: The values of the original array are: 0 1 2 3 4 The values of the modified array are: 0 2 4 6 8 Effects of passing array element call by value: The value of a[3] is 6 Value in modifyElement is 12 The value of a[3] is 6
  • 15. 15 6.6 Sorting Arrays  Sorting data − Important computing application − Virtually every organization must sort some data  Bubble sort (sinking sort) − Several passes through the array − Successive pairs of elements are compared  If increasing order (or identical ), no change  If decreasing order, elements exchanged − Repeat  Example: − original: 3 4 2 6 7 − pass 1: 3 2 4 6 7 − pass 2: 2 3 4 6 7 −