LectureSlides_4_ArraysStrings
LectureSlides_4_ArraysStrings
arr[pos-1] = num;
nElts++;
//…
Hint – delete array element
for(i=pos-1; i<nElts-1; i++)
arr[i] = arr[i + 1];
nElts--;
Hint: Merge two arrays
int A[] = {1,2,3,4}, B[] = {4,5,6},C[10];
int a=4,b=3,c=a+b,i,j;
for(i=0;i<a;i++) C[i] = A[i];
for(j=a;j<c;j++) C[j] = B[j-a];
Answer: insertion
main(){
int arr[5] ={1,2,3,4}, nElts=4, pos,i, num;
printf("Enter elt and pos: "); scanf("%d
%d",&num,&pos);
for(i=nElts; i>=pos; i--) arr[i] = arr[i-1];
arr[pos-1] = num;
nElts++;
for(i=0;i<nElts;i++) printf(" %d",arr[i]);
}
//Linear Search
int main( ) {
int A[] = { 55, 65, 75, 56, 78, 78, 90 },n=7,x=78;
int index=-1,i;
for (i = 0; i < n; i++) if(A[i] == x) index= i;
//found
if(index>-1)
printf("%d found at loc %d",x,index+1);
else printf("%d not found",x);
}
Try binary search
You need a sorted array
int A[] = { 55, 56,65, 75, 78, 78, 90 };
int x=75; //to be searched
int n = 7; //array size
Binary search
while (beg<=end) {
mid = (beg + end)/2;
if (A[mid] == x) return mid;
if (A[mid] > x) beg = mid-1;
else end = mid+1);
}
2-d array
int s[4][2] ; // total 32 bytes
Arrays gets stored sequentially in the
memory
3-d array
int A[3][4][2];
2-d initialization
int stud[4][2] = { { 1234, 56 }, { 1212, 33 },
{ 1434, 80 }, { 1312, 78 } } ;
int stud[4][2] = { 1234, 56, 1212, 33, 1434,
80, 1312, 78 } ;
3-d initialization
int A[3][4][2]={
{{2,4},{7,8},{3,4},{5,6}},
{{7,6},{3,4},{5,3},{2,3}},
{{8,9},{7,2},{3,4},{5,1},}
};
Displaying basic matrix
main() {
int A[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) printf("%d ", A[i][j]);
printf("\n"); } }
Function to add two matrices
int i,j,C[3][3];
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
C[i][j] = A[i][j]+B[i][j];
Strings