//Program 1: Calculate Sum and Average of Array Elements
//
//#include<stdio.h>
//int main(){
//
// int i , n;
// float sum = 0, avg;
// printf("Enter number of elements: ");
// scanf("%d",&n);
// int arr[n];
//
// printf("Enter %d elements: ",n);
// for(i = 0; i<n ; i++){
// scanf("%d",&arr[i]);
// sum += arr[i];
// }
//
// avg = sum/n;
//
// printf("Sum = %.2f\n", sum);
// printf("Average = %.2f\n", avg);
//
//}
/***Program 2: Find Maximum and Minimum Value of an Array***/
//#include<stdio.h>
//int main(){
//
// int i , n , min, max;
// printf("Enter number of elements: ");
// scanf("%d",&n);
// int arr[n];
//
// printf("Enter %d elements: ",n);
// for(i = 0; i<n ; i++){
// scanf("%d",&arr[i]);
//
// }
//
// max = min = arr[0];
// for(i = 1;i<n;i++){
// if (arr[i]> max){
// max = arr[i];
// }
// if(arr[i]<min){
// min =arr[i];
// }
// }
//
// printf("Max value %d\n", max);
// printf("Min value %d\n", min);
//
//}
//
//
//
//
//
///*** Program 3: Search a Specific Number and Print Its Position ***/
//#include <stdio.h>
//
//int main() {
// int n, i, key, found = 0;
// printf("Enter number of elements: ");
// scanf("%d", &n);
// int arr[n];
//
// printf("Enter %d elements:\n", n);
// for(i = 0; i < n; i++)
// scanf("%d", &arr[i]);
//
// printf("Enter element to search: ");
// scanf("%d", &key);
//
// for(i = 0; i < n; i++) {
// if(arr[i] == key) {
// printf("Element %d found at position %d\n", key, i + 1);
// found = 1;
// break;
// }
// }
//
// if(!found)
// printf("Element not found.\n");
//
// return 0;
//}
/*** Program 4: Delete the First Element of an Array ***/
//#include <stdio.h>
//
//int main() {
// int n, i;
// printf("Enter number of elements: ");
// scanf("%d", &n);
// int arr[n];
//
// printf("Enter %d elements:\n", n);
// for(i = 0; i < n; i++)
// scanf("%d", &arr[i]);
//
// // Delete first element
// for(i = 0; i < n - 1; i++)
// arr[i] = arr[i + 1];
//
// n--; // one element removed
//
// printf("Array after deleting first element:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
// printf("\n");
//
// return 0;
//}
/*** Program 5: Delete a Specific Number from an Array ***/
//#include <stdio.h>
//
//int main() {
// int n, i, j, num, found = 0;
// printf("Enter number of elements: ");
// scanf("%d", &n);
// int arr[n];
//
// printf("Enter %d elements:\n", n);
// for(i = 0; i < n; i++)
// scanf("%d", &arr[i]);
//
// printf("Enter number to delete: ");
// scanf("%d", &num);
//
// for(i = 0; i < n; i++) {
// if(arr[i] == num) {
// found = 1;
// for(j = i; j < n - 1; j++)
// arr[j] = arr[j + 1];
// n--;
// break;
// }
// }
//
// if(found) {
// printf("Array after deleting %d:\n", num);
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
// } else {
// printf("Number not found in array.\n");
// }
//
// printf("\n");
// return 0;
//}
/*** Program 6: Find the Sum and Average of a Two-Dimensional Array ***/
//#include <stdio.h>
//
//int main() {
// int r, c, i, j, sum = 0;
// float avg;
//
// printf("Enter number of rows and columns: ");
// scanf("%d %d", &r, &c);
//
// int arr[r][c];
// printf("Enter elements of %d x %d matrix:\n", r, c);
// for(i = 0; i < r; i++) {
// for(j = 0; j < c; j++) {
// scanf("%d", &arr[i][j]);
// sum += arr[i][j];
// }
// }
//
// avg = (float)sum / (r * c);
//
// printf("Sum = %d\n", sum);
// printf("Average = %.2f\n", avg);
//
// return 0;
//}
///*** Program 7: Calculate the sum of border elements of a 2D array ***/
//#include <stdio.h>
//
//int main() {
// int r, c, i, j, sum = 0;
//
// printf("Enter number of rows and columns: ");
// scanf("%d %d", &r, &c);
//
// int arr[r][c];
//
// printf("Enter elements of %d x %d matrix:\n", r, c);
// for(i = 0; i < r; i++)
// for(j = 0; j < c; j++)
// scanf("%d", &arr[i][j]);
//
// // Print matrix
// printf("\nEntered Matrix:\n");
// for(i = 0; i < r; i++) {
// for(j = 0; j < c; j++)
// printf("%d ", arr[i][j]);
// printf("\n");
// }
//
// // Sum of border elements
// for(i = 0; i < r; i++) {
// for(j = 0; j < c; j++) {
// if(i == 0 || i == r - 1 || j == 0 || j == c - 1)
// sum += arr[i][j];
// }
// }
//
// printf("\nSum of border elements = %d\n", sum);
// return 0;
//}
/*** Program 8: Calculate the sum of diagonal elements of a square matrix ***/
//#include <stdio.h>
//
//int main() {
// int n, i, j, sum = 0;
//
// printf("Enter size of square matrix: ");
// scanf("%d", &n);
//
// int arr[n][n];
//
// printf("Enter elements of %d x %d matrix:\n", n, n);
// for(i = 0; i < n; i++)
// for(j = 0; j < n; j++)
// scanf("%d", &arr[i][j]);
//
// // Print matrix
// printf("\nEntered Matrix:\n");
// for(i = 0; i < n; i++) {
// for(j = 0; j < n; j++)
// printf("%d ", arr[i][j]);
// printf("\n");
// }
//
// // Sum of diagonal elements
// for(i = 0; i < n; i++) {
// sum += arr[i][i]; // Primary diagonal
// if(i != n - i - 1)
// sum += arr[i][n - i - 1]; // Secondary diagonal
// }
//
// printf("\nSum of diagonal elements = %d\n", sum);
// return 0;
//}
///*** Program 9: Add two matrices ***/
//#include <stdio.h>
//
//int main() {
// int r, c, i, j;
//
// printf("Enter number of rows and columns: ");
// scanf("%d %d", &r, &c);
//
// int a[r][c], b[r][c], sum[r][c];
//
// printf("Enter elements of first matrix:\n");
// for(i = 0; i < r; i++)
// for(j = 0; j < c; j++)
// scanf("%d", &a[i][j]);
//
// printf("Enter elements of second matrix:\n");
// for(i = 0; i < r; i++)
// for(j = 0; j < c; j++)
// scanf("%d", &b[i][j]);
//
// // Print both matrices
// printf("\nFirst Matrix:\n");
// for(i = 0; i < r; i++) {
// for(j = 0; j < c; j++)
// printf("%d ", a[i][j]);
// printf("\n");
// }
//
// printf("\nSecond Matrix:\n");
// for(i = 0; i < r; i++) {
// for(j = 0; j < c; j++)
// printf("%d ", b[i][j]);
// printf("\n");
// }
//
// // Add matrices
// for(i = 0; i < r; i++)
// for(j = 0; j < c; j++)
// sum[i][j] = a[i][j] + b[i][j];
//
// printf("\nResultant Matrix (A + B):\n");
// for(i = 0; i < r; i++) {
// for(j = 0; j < c; j++)
// printf("%d ", sum[i][j]);
// printf("\n");
// }
//
// return 0;
//}
///*** Program 10: Multiply two matrices ***/
//#include <stdio.h>
//
//int main() {
// int r1, c1, r2, c2, i, j, k;
//
// printf("Enter rows and columns of first matrix: ");
// scanf("%d %d", &r1, &c1);
//
// printf("Enter rows and columns of second matrix: ");
// scanf("%d %d", &r2, &c2);
//
// if(c1 != r2) {
// printf("Matrix multiplication not possible (c1 must equal r2).\n");
// return 0;
// }
//
// int a[r1][c1], b[r2][c2], prod[r1][c2];
//
// printf("Enter elements of first matrix:\n");
// for(i = 0; i < r1; i++)
// for(j = 0; j < c1; j++)
// scanf("%d", &a[i][j]);
//
// printf("Enter elements of second matrix:\n");
// for(i = 0; i < r2; i++)
// for(j = 0; j < c2; j++)
// scanf("%d", &b[i][j]);
//
// // Print both matrices
// printf("\nFirst Matrix:\n");
// for(i = 0; i < r1; i++) {
// for(j = 0; j < c1; j++)
// printf("%d ", a[i][j]);
// printf("\n");
// }
//
// printf("\nSecond Matrix:\n");
// for(i = 0; i < r2; i++) {
// for(j = 0; j < c2; j++)
// printf("%d ", b[i][j]);
// printf("\n");
// }
//
// // Initialize product matrix to 0
// for(i = 0; i < r1; i++)
// for(j = 0; j < c2; j++)
// prod[i][j] = 0;
//
// // Matrix multiplication
// for(i = 0; i < r1; i++)
// for(j = 0; j < c2; j++)
// for(k = 0; k < c1; k++)
// prod[i][j] += a[i][k] * b[k][j];
//
// printf("\nResultant Matrix (A x B):\n");
// for(i = 0; i < r1; i++) {
// for(j = 0; j < c2; j++)
// printf("%d ", prod[i][j]);
// printf("\n");
// }
//
// return 0;
//}
/*** Program 11: Replace a specific number in an array ***/
//#include <stdio.h>
//
//int main() {
// int n, i, oldVal, newVal, found = 0;
//
// printf("Enter number of elements: ");
// scanf("%d", &n);
//
// int arr[n];
//
// printf("Enter %d elements:\n", n);
// for(i = 0; i < n; i++)
// scanf("%d", &arr[i]);
//
// printf("\nOriginal Array:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
// printf("\n");
//
// printf("\nEnter number to replace: ");
// scanf("%d", &oldVal);
//
// printf("Enter new number: ");
// scanf("%d", &newVal);
//
// for(i = 0; i < n; i++) {
// if(arr[i] == oldVal) {
// arr[i] = newVal;
// found = 1;
// }
// }
//
// if(found) {
// printf("\nArray after replacement:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
// } else {
// printf("\nNumber not found in the array.\n");
// }
//
// printf("\n");
// return 0;
//}
/*** Program 12: Insert an element at the beginning of an array ***/
//#include <stdio.h>
//
//int main() {
// int n, i, num;
//
// printf("Enter number of elements: ");
// scanf("%d", &n);
//
// int arr[n + 1]; // extra space for insertion
//
// printf("Enter %d elements:\n", n);
// for(i = 0; i < n; i++)
// scanf("%d", &arr[i]);
//
// printf("\nOriginal Array:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
// printf("\n");
//
// printf("\nEnter element to insert at the beginning: ");
// scanf("%d", &num);
//
// // Shift elements to the right
// for(i = n; i > 0; i--)
// arr[i] = arr[i - 1];
//
// arr[0] = num;
// n++;
//
// printf("\nArray after insertion:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
//
// printf("\n");
// return 0;
//}
///*** Program 13: Insert an element at a specific position in an array ***/
//#include <stdio.h>
//
//int main() {
// int n, i, pos, num;
//
// printf("Enter number of elements: ");
// scanf("%d", &n);
//
// int arr[n + 1]; // extra space for new element
//
// printf("Enter %d elements:\n", n);
// for(i = 0; i < n; i++)
// scanf("%d", &arr[i]);
//
// printf("\nOriginal Array:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
// printf("\n");
//
// printf("\nEnter position to insert (1 to %d): ", n + 1);
// scanf("%d", &pos);
// printf("Enter element to insert: ");
// scanf("%d", &num);
//
// if(pos < 1 || pos > n + 1) {
// printf("Invalid position!\n");
// return 0;
// }
//
// // Shift elements to make space
// for(i = n; i >= pos; i--)
// arr[i] = arr[i - 1];
//
// arr[pos - 1] = num;
// n++;
//
// printf("\nArray after insertion:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
//
// printf("\n");
// return 0;
//}
/*** Program 15: Merge two arrays ***/
//#include <stdio.h>
//
//int main() {
// int n1, n2, i, j;
//
// printf("Enter number of elements in first array: ");
// scanf("%d", &n1);
// int a[n1];
// printf("Enter %d elements for first array:\n", n1);
// for(i = 0; i < n1; i++)
// scanf("%d", &a[i]);
//
// printf("Enter number of elements in second array: ");
// scanf("%d", &n2);
// int b[n2];
// printf("Enter %d elements for second array:\n", n2);
// for(i = 0; i < n2; i++)
// scanf("%d", &b[i]);
//
// int merged[n1 + n2];
//
// // Merge both arrays
// for(i = 0; i < n1; i++)
// merged[i] = a[i];
// for(j = 0; j < n2; j++)
// merged[i + j] = b[j];
//
// printf("\nFirst Array:\n");
// for(i = 0; i < n1; i++) printf("%d ", a[i]);
// printf("\nSecond Array:\n");
// for(i = 0; i < n2; i++) printf("%d ", b[i]);
//
// printf("\n\nMerged Array:\n");
// for(i = 0; i < n1 + n2; i++)
// printf("%d ", merged[i]);
// printf("\n");
//
// return 0;
//}
///*** Program 16: Reverse an array ***/
//#include <stdio.h>
//
//int main() {
// int n, i, temp;
//
// printf("Enter number of elements: ");
// scanf("%d", &n);
//
// int arr[n];
// printf("Enter %d elements:\n", n);
// for(i = 0; i < n; i++)
// scanf("%d", &arr[i]);
//
// printf("\nOriginal Array:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
// printf("\n");
//
// // Reverse the array
// for(i = 0; i < n / 2; i++) {
// temp = arr[i];
// arr[i] = arr[n - i - 1];
// arr[n - i - 1] = temp;
// }
//
// printf("\nReversed Array:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
// printf("\n");
//
// return 0;
//}
///*** Program 17: Sort an array in ascending order ***/
//#include <stdio.h>
//
//int main() {
// int n, i, j, temp;
//
// printf("Enter number of elements: ");
// scanf("%d", &n);
// int arr[n];
//
// printf("Enter %d elements:\n", n);
// for(i = 0; i < n; i++)
// scanf("%d", &arr[i]);
//
// printf("\nOriginal Array:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
// printf("\n");
//
// // Bubble sort ascending
// for(i = 0; i < n - 1; i++) {
// for(j = 0; j < n - i - 1; j++) {
// if(arr[j] > arr[j + 1]) {
// temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = temp;
// }
// }
// }
//
// printf("\nArray Sorted in Ascending Order:\n");
// for(i = 0; i < n; i++)
// printf("%d ", arr[i]);
// printf("\n");
//
// return 0;
///**Binary Search in C(Important One)**/
//#include <stdio.h>
//
//int main() {
// int arr[10] = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};
// int n = 10, key, low = 0, high = n - 1, mid;
// printf("Enter the number to search: ");
// scanf("%d", &key);
//
// while (low <= high) {
// mid = (low + high) / 2;
// if (arr[mid] == key) {
// printf("Element %d found at position %d\n", key, mid);
// return 0;
// } else if (arr[mid] < key)
// low = mid + 1;
// else
// high = mid - 1;
// }
//
// printf("Element not found.\n");
// return 0;
//}