/
C-ARRAY C Array is a collection of variables belongings to the same data type. Group of C-ARRAY C Array is a collection of variables belongings to the same data type. Group of

C-ARRAY C Array is a collection of variables belongings to the same data type. Group of - PowerPoint Presentation

jordyn
jordyn . @jordyn
Follow
66 views
Uploaded On 2023-10-26

C-ARRAY C Array is a collection of variables belongings to the same data type. Group of - PPT Presentation

Array might be belonging to any of the data types eg Float int double etc Array size must be a constant value Always Contiguous adjacent memory locations are used to store array elements in memory ID: 1025212

grd arr int array arr grd array int printf sum program avg ptr amp tmp pointer main return rows

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "C-ARRAY C Array is a collection of varia..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

1. C-ARRAY

2. C Array is a collection of variables belongings to the same data type. Group of data of same data type can be stored in an array.Array might be belonging to any of the data types e.g. Float, int, double, etc.Array size must be a constant value.Always, Contiguous (adjacent) memory locations are used to store array elements in memory.It is a best practice to initialize an array to zero or null while declaring, if we do not assign any values to array.

3. Example for C Arrays: int x[20];       // integer array char y[10];   // character array   i.e. string Types of C arrays: There are 2 types of C arrays. They are,One dimensional arrayMulti dimensional array Two dimensional arrayThree dimensional array, four dimensional array etc…

4. One dimensional array in C:Syntax : data-type arr_name[array_size];Array DeclarationArray InitializationAccessing ArraySyntax: data_type arr_name [arr_size];data_type arr_name [arr_size]=(value1, value2, value3,….);arr_name[index];int age [5];int age[5]={0, 1, 2, 3, 4};age[0];_/*0_is_accessed*/age[1];_/*1_is_accessed*/age[2];_/*2_is_accessed*/char str[10];char str[10]={‘H’,‘a’,‘i’}; (or)char str[0] = ‘H’;char str[1] = ‘a’;char str[2] = ‘i;str[0];_/*H is accessed*/str[1];  /*a is accessed*/str[2];  /* i is accessed*/

5. /* The following program declares an array of five integers, assigns the values 10, 20, 30, 40, and 50 to its elements, and displays those greater than 20.*/#include <stdio.h>int main(void){int i, arr[5];arr[0] = 10;arr[1] = 20;arr[2] = 30;arr[3] = 40;arr[4] = 50;for(i = 0; i < 5; i++){ /* The braces are not necessary; we use them to make the codeclearer. */if(arr[i] > 20)printf("%d\n", arr[i]);}return 0;}

6. /* Write a program that declares an array of five elements and uses a for loop to assign the values 1.1, 1.2, 1.3, 1.4, and 1.5 to them. Then, the program should display the array’s elements in reverse order. */#include <stdio.h>int main(void){int i;double arr[5];arr[0] = 1.1;for(i = 1; i < 5; i++)arr[i] = arr[i-1] + 0.1;for(i = 4; i >= 0; i--)printf("%f\n", arr[i]);return 0;}

7. // Example program for one-dimensional array#include<stdio.h>int main(){int i;int arr[5] = {10,20,30,40,50}; // declaring and Initializing array in C//To initialize all array elements to 0, use int arr[5]={0};/* Above array can also be initialized as follows:arr[0] = 10;arr[1] = 20;arr[2] = 30;arr[3] = 40;arr[4] = 50; */for (i=0;i<5;i++){// Accessing each variableprintf(“value of arr[%d] is %d \n”, i, arr[i]);}}

8. Two Dimensional ArrayThe form of a two-dimensional array resembles that of a matrix in math; it is an array of elements of the same type arranged in rows and columns. syntax data_type array_name [num_of_rows][num_of_column]The number of its elements is equal to the product of rows multiplied by columns. For example, the statement double arr[10][5]; declares the two-dimensional array arr with 50 elements of type double.Array DeclarationArray InitializationAccessing ArraySyntax: data_type arr_name [num_of_rows][num_of_column];data_type arr_name[2][2] = {{0,0},{0,1},{1,0},{1,1}};arr_name[index];Example:int arr[2][2];int arr[2][2] = {1,2, 3, 4};arr [0] [0] = 1; arr [0] ]1] = 2;arr [1][0]  = 3;arr [1] [1] = 4;

9. //Example program for C- array#include<stdio.h>int main(){int i,j;// declaring and Initializing arrayint arr[2][2] = {10,20,30,40};/* Above array can be initialized as below alsoarr[0][0] = 10; // Initializing arrayarr[0][1] = 20;arr[1][0] = 30;arr[1][1] = 40; */for (i=0;i<2;i++){for (j=0;j<2;j++){// Accessing variablesprintf(“value of arr[%d] [%d] : %d\n”,i,j,arr[i][j]);} } }

10. /* Write a program that reads 8 integers, stores them in a 2×4 array, and displays thearray elements in reverse order, from the lower-right element to the upper-left one. */#include <stdio.h>#define ROWS 2#define COLS 4int main(void) {int i, j, arr[ROWS][COLS];for(i = 0; i < ROWS; i++){for(j = 0; j < COLS; j++){printf("Enter arr[%d][%d]: ", i, j);scanf("%d", &arr[i][j]);} }printf("\nArray elements\n");printf("--------------\n");for(i = ROWS-1; i >= 0; i--)for(j = COLS-1; j >= 0; j--)printf("arr[%d][%d] = %d\n", i, j, arr[i][j]);return 0; }

11. /* Write a program that reads and stores the grades of 100 students in 10 courses in a 100×10 array and displays the average, the best, and the worst grade of each student. The program should also display the positions in the array that hold the best and worst average grades. If more than one student has the same best or worst average grade, the program should display the first position found. The program should force the user to enter grades within [0, 10]. */#include <stdio.h>#define STUDS 100#define COURSES 10

12. int main(void){int i, j, min_pos, max_pos;float sum, min_grd, max_grd, avg_grd, min_avg_grd, max_avg_grd,grd[STUDS][COURSES];max_avg_grd = –1;min_avg_grd = 11;for(i = 0; i < STUDS; i++){sum = 0;max_grd = –1;min_grd = 11;for(j = 0; j < COURSES; j++){do{printf("Enter grade of student_%d forlesson_%d: ", i+1, j+1);scanf("%f", &grd[i][j]);} while(grd[i][j] < 0 || grd[i][j] > 10);sum += grd[i][j];if(grd[i][j] >= max_grd)

13. max_grd = grd[i][j];if(grd[i][j] <= min_grd)min_grd = grd[i][j];}avg_grd = sum/COURSES;if(avg_grd > max_avg_grd){max_avg_grd = avg_grd;max_pos = i;}if(avg_grd < min_avg_grd){min_avg_grd = avg_grd;min_pos = i;}printf("Student_%d: Avg = %.2f Max = %.2f Min = %.2f\n",i+1, avg_grd, max_grd, min_grd);}printf("\nStudent_%d has the higher average %.2f and student_%dhas the lower average %.2f\n", max_pos, max_avg_grd, min_pos,min_avg_grd);return 0; }

14. /* Write a program that reads integers and stores them in a square matrix (e.g., 3×3). Then, the program should check whether the array is a magic square; that is, the sum of each row, column, and diagonal is the same. */#include <stdio.h>#define ROWS 3#define COLS 3int main(void){int i, j, sum, tmp, arr[ROWS][COLS]; //column, and diagonal is the same.sum = tmp = 0;for(i = 0; i < ROWS; i++){

15. /* We find the sums of the diagonals. */for(j = 0; j < COLS; j++){printf("Enter element arr[%d][%d]: ", i, j);scanf("%d", &arr[i][j]);if(i == j)sum += arr[i][j];if(i+j == ROWS-1) /* Check if the element belongs inthe secondary diagonal. */tmp += arr[i][j];}}if(sum != tmp){printf("Not magic square -> Sum_main_diag: %d Sum_sec_diag:%d\n", sum, tmp);return 0;}

16. for(i = 0; i < ROWS; i++){/* Initialize the variable which calculates the sum of theelements of each row. */tmp = 0;for(j = 0; j < COLS; j++)tmp += arr[i][j];if(sum != tmp){printf("Not magic square -> Sum_row_%d: %d Sum_diag:%d\n", i+1, tmp, sum);return 0;}

17. }for(i = 0; i < COLS; i++){tmp = 0; /* Initialize the variable which calculates the sumof the elements of each column. */for(j = 0; j < ROWS; j++)tmp += arr[j][i];if(sum != tmp){printf("Not magic square -> Sum_col_%d: %d Sum_diag:%d\n", i+1, tmp, sum);return 0;}}printf("Magic square !!!\n");return 0;

18. C-POINTER

19. C Pointer is a variable that stores/points the address of another variable. C Pointer is used to allocate memory dynamically i.e. at run time. The pointer variable might be belonging to any of the data type such as int, float, char, double, short etc. Syntax : data_type *var_name;  Example : int *p;  char *p;Where, * is used to denote that “p” is pointer variable and not a normal variable.Key points to remember about pointers in C:Normal variable stores the value whereas pointer variable stores the address of the variable.The content of the C pointer is always a whole number i.e. address.Always C pointer is initialized to null, i.e. int *p = null.The value of null pointer is 0.& symbol is used to get the address of the variable.

20. * symbol is used to get the value of the variable that the pointer is pointing to.If pointer is assigned to NULL, it means it is pointing to nothing.Two pointers can be subtracted to know how many elements are available between these two pointers.But, Pointer addition, multiplication, division are not allowed.The size of any pointer is 2 byte (for 16 bit compiler).

21. // example program for pointer in c#include <stdio.h>int main(){int *ptr, q;q = 50;/* address of q is assigned to ptr */ptr = &q;/* display q’s value using ptr variable */printf(“%d”, *ptr);return 0;}                                                                                                                                                                                                    .

22. // What is the output of the following program?#include <stdio.h>int main(void){int *ptr, i = 10;ptr = &i;i += 20;printf("%d\n", *ptr);return 0;}Answer: Since ptr points to the address of i, *ptr is equal to i. The statement i += 20; makes i equal to 30, and the program outputs 30.

23. /* Write a program that reads two integers, stores them in two variables, declares two pointers to them, and displays the memory addresses of both variables, the content of both pointers, as well as their memory addresses.*/#include <stdio.h>int main(void){int *ptr1, *ptr2, i, j;printf("Enter numbers: ");scanf("%d%d", &i, &j);ptr1 = &i;ptr2 = &j;printf("Num1 address = %p\n", ptr1);printf("Num2 address = %p\n", ptr2);printf("Ptr1 content = %d\n", *ptr1);printf("Ptr2 content = %d\n", *ptr2);printf("Ptr1 address = %p\n", &ptr1);printf("Ptr2 address = %p\n", &ptr2);return 0; }

24. /* Write a program that uses a pointer to read a float number and display its absolute value. */#include <stdio.h>int main(void){double *p, val;p = &val;printf("Enter number: ");scanf("%lf", p);if(*p >= 0)printf("%f\n", *p);elseprintf("%f\n", -*p);return 0;}

25. /*Write a program that uses two pointers to read two float numbers first and then to swap the values they point to. Then, use the same pointers to output the greater value. */#include <stdio.h>int main(void){float *ptr1, *ptr2, i, j, tmp;/* The pointers should be initialized before used in scanf(). */ptr1 = &i;ptr2 = &j;printf("Enter values: ");scanf("%f%f", ptr1, ptr2); /* Store the input values in theaddresses pointed to by the pointers. */tmp = *ptr2;*ptr2 = *ptr1;*ptr1 = tmp;if(*ptr1 > *ptr2)printf("%f\n", *ptr1);elseprintf("%f\n", *ptr2);return 0;}

26. //What is the output of the following program?#include <stdio.h>int main(void){int i = 0, *ptr = &i;*ptr = *ptr ? 10 : 20;printf("%d\n", i);return 0;}Answer: Since ptr points to the address of i, the expression: *ptr = *ptr ? 10 : 20; is equivalent to i = i ? 10 : 20; Since i is 0 (false), the value of the expression is 20. Therefore, i becomes 20 and the program outputs 20.