0% found this document useful (0 votes)
5 views

Pointerxy

The document contains multiple C programs demonstrating various concepts such as matrix multiplication, finding the second largest element in an array, replacing diagonal elements of a matrix, reversing an array, and filtering letters from a string. Each program utilizes pointers for efficient memory management and manipulation. The programs include user input for matrix dimensions and elements, as well as output for results like products, sorted arrays, and filtered strings.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Pointerxy

The document contains multiple C programs demonstrating various concepts such as matrix multiplication, finding the second largest element in an array, replacing diagonal elements of a matrix, reversing an array, and filtering letters from a string. Each program utilizes pointers for efficient memory management and manipulation. The programs include user input for matrix dimensions and elements, as well as output for results like products, sorted arrays, and filtered strings.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

1.

Write a C program that uses pointer to represent two 2-D array of size of mxn and pxq
respectively. Find the product of these two matrices if possible otherwise display a message
"Calculation cannot be performed" using function.
Ans:
#include <stdio.h>
#define MAX_ROWS 100
#define MAX_COLS 100
void multiplyMatrices (int m, int n, int p, int q, int matrix1[MAX_ROWS] [MAX_COLS], int
matrix2[MAX_ROWS] [MAX_COLS], int result[MAX_ROWS] [MAX_COLS]) {

for (int i = 0; i < m; i++) {


for (int j = 0; j < q; j++) {
int sum = 0;
for (int k = 0; k < n; k++) {
sum += *(*(matrix1 + i) + k) * *(*(matrix2 + k) + j);
}
*(*(result + i) + j) = sum;
}
}
}
void displayMatrix (int matrix[MAX_ROWS] [MAX_COLS], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf ("%d\t", *(*(matrix + i) + j));
}
printf("\n");
}
}

int main () {
int m, n, p, q;
printf ("Enter the dimensions of the first matrix (m x n): ");
scanf ("%d %d", &m, &n);
printf ("Enter the dimensions of the second matrix (p x q): ");
scanf ("%d %d", &p, &q);
if (n! = p) {
printf ("Calculation cannot be performed\n");
return 0;
}
int matrix1[MAX_ROWS] [MAX_COLS], matrix2[MAX_ROWS] [MAX_COLS],
result[MAX_ROWS]
[MAX_COLS];
printf ("Enter elements of the first matrix:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf ("%d", (*(matrix1 + i) + j));
}
}
Printf ("Enter elements of the second matrix:\n");
for (int i = 0; i < p; i++) {
for (int j = 0; j < q; j++) {
scanf ("%d", (*(matrix2 + i) + j));
}
}
multiplyMatrices (m, n, p, q, matrix1, matrix2, result);
printf ("Product of the matrices:\n");
displayMatrix (result, m, q);
return 0;
}

2. Write a program in C to find second largest elements from an array containing N elements
using concept of pointer.
#include <stdio.h>
void bubbleSort (int *arr, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (*(arr + j) < *(arr + j + 1)) {
int temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
int main () {
int n;
printf ("Enter the number of elements in the array: ");
scanf ("%d", &n);
int arr[n];
printf ("Enter %d elements:\n", n);
for (int i = 0; i < n; i++) {
scanf ("%d", &arr[i]);
}
bubbleSort (arr, n);
printf ("Sorted array in descending order:\n");
for (int i = 0; i < n; i++) {
printf ("%d ", arr[i]);
}
printf("\n");
int *second_largest = arr + 1;
printf ("The second largest element in the array is: %d\n", *second_largest);
return 0;
}

3. Write a program to read a 3*3 square matrix, find minimum integer value of a matrix, replace
the diagonal elements by the minimum element and display it using pointer

#include <stdio.h>

void findAndReplaceDiagonal(int matrix[3][3]);

int main() {
int matrix[3][3];

printf("Enter the elements of a 3x3 matrix:\n");


for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
scanf("%d", &matrix[i][j]);
}
}

findAndReplaceDiagonal(matrix);

printf("\nUpdated Matrix:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}

return 0;
}

void findAndReplaceDiagonal(int matrix[3][3]) {


int min = matrix[0][0];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (*(matrix[i] + j) < min) {
min = *(matrix[i] + j);
}
}
}

for (int i = 0; i < 3; i++) {


*(matrix[i] + i) = min;
}
}

4. Write a C program that calls reversearray() to reverse the array and return the array and
display the element of reversed array using pointer.

#include <stdio.h>
int* reverseArray(int *arr, int size) {

int start = 0;
int end = size - 1;

while (start < end) {


int temp = *(arr + start);
*(arr + start) = *(arr + end);
*(arr + end) = temp;

start++;
end--;

}
return arr;
// Return the reversed array (pointer to the first element)
}

int main() {

int size;
printf("Enter the size of the array: ");
scanf("%d", &size);
int arr[size];
printf("Enter %d elements:\n", size);
for (int i = 0; i < size; i++) {
scanf ("%d", &arr[i]);
}

int *reversedArr = reverseArray (arr, size);

printf ("Reversed Array: ");


for (int i = 0; i < size; i++) {
printf ("%d ", *(reversedArr + i));
}
printf("\n");
return 0;
}

5. Write a program to read a string containing letters, numbers and special characters, transfer
only letters contained in it into another string using pointer, finally display the second string
containing only alphabets.

#include <stdio.h>

void transferLetters( char *str, char *letters) {


while (*str != '\0') {
if ((*str >= 'A' && *str <= 'Z') || (*str >= 'a' && *str <= 'z') || *str == ' ') {
*letters = *str;
letters++;
}
str++;
}
*letters = ‘\0';
}

int main() {
char inputString[100];
char lettersString[100];

printf("Enter a string containing letters, numbers, and special characters: ");


scanf("%99[^\n]", inputString);

transferLetters(inputString, lettersString);
printf("String containing only letters: %s\n", lettersString);
return 0;
}

You might also like