0% found this document useful (0 votes)
16 views6 pages

C Array Lab Tasks and Solutions

The document contains five medium-level C programming tasks related to arrays. These tasks include calculating the frequency of elements, finding the second largest and smallest elements, rotating arrays, merging two sorted arrays, and checking if an array is a palindrome. Each task is accompanied by a problem statement and a corresponding C code solution.

Uploaded by

mammar6058
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)
16 views6 pages

C Array Lab Tasks and Solutions

The document contains five medium-level C programming tasks related to arrays. These tasks include calculating the frequency of elements, finding the second largest and smallest elements, rotating arrays, merging two sorted arrays, and checking if an array is a palindrome. Each task is accompanied by a problem statement and a corresponding C code solution.

Uploaded by

mammar6058
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

Array Lab Tasks in C (Medium Level)

Lab Task 1: Frequency Counter

Problem Statement: Write a program in C that takes an integer array from the user and calculates the
frequency of each unique element.

#include <stdio.h>

int main() {
int n;
printf("Enter size of array: ");
scanf("%d", &n);

int arr[n], freq[n];


printf("Enter %d elements: ", n);
for(int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
freq[i] = -1;
}

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


if(freq[i] == -1) {
int count = 1;
for(int j = i + 1; j < n; j++) {
if(arr[i] == arr[j]) {
count++;
freq[j] = 0;
}
}
freq[i] = count;
}
}

printf("\nElement Frequencies:\n");
for(int i = 0; i < n; i++) {
if(freq[i] != 0) {
printf("%d occurs %d times\n", arr[i], freq[i]);
}
}

return 0;
}
Array Lab Tasks in C (Medium Level)

Lab Task 2: Second Largest and Second Smallest

Problem Statement: Write a C program to find the second largest and second smallest element in an array
without sorting it.

#include <stdio.h>
#include <limits.h>

int main() {
int n;
printf("Enter size of array: ");
scanf("%d", &n);

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

int largest = INT_MIN, secondLargest = INT_MIN;


int smallest = INT_MAX, secondSmallest = INT_MAX;

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


if(arr[i] > largest) {
secondLargest = largest;
largest = arr[i];
} else if(arr[i] > secondLargest && arr[i] != largest) {
secondLargest = arr[i];
}

if(arr[i] < smallest) {


secondSmallest = smallest;
smallest = arr[i];
} else if(arr[i] < secondSmallest && arr[i] != smallest) {
secondSmallest = arr[i];
}
}

printf("Second Largest = %d\n", secondLargest);


printf("Second Smallest = %d\n", secondSmallest);

return 0;
}
Array Lab Tasks in C (Medium Level)

Lab Task 3: Left and Right Rotation

Problem Statement: Write a program in C that rotates an array to the left and right by k positions.

#include <stdio.h>

void leftRotate(int arr[], int n, int k) {


int temp[k];
for(int i = 0; i < k; i++)
temp[i] = arr[i];

for(int i = 0; i < n - k; i++)


arr[i] = arr[i + k];

for(int i = 0; i < k; i++)


arr[n - k + i] = temp[i];
}

void rightRotate(int arr[], int n, int k) {


int temp[k];
for(int i = 0; i < k; i++)
temp[i] = arr[n - k + i];

for(int i = n - 1; i >= k; i--)


arr[i] = arr[i - k];

for(int i = 0; i < k; i++)


arr[i] = temp[i];
}

void printArray(int arr[], int n) {


for(int i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("\n");
}

int main() {
int n, k;
printf("Enter size of array: ");
scanf("%d", &n);

int arr[n];
printf("Enter %d elements: ", n);
for(int i = 0; i < n; i++)
scanf("%d", &arr[i]);

printf("Enter value of k: ");


scanf("%d", &k);

leftRotate(arr, n, k);
printf("After left rotation: ");
Array Lab Tasks in C (Medium Level)

printArray(arr, n);

rightRotate(arr, n, k);
printf("After right rotation (original array): ");
printArray(arr, n);

return 0;
}
Array Lab Tasks in C (Medium Level)

Lab Task 4: Merge Two Sorted Arrays

Problem Statement: Write a C program that merges two sorted arrays into a single sorted array without using
sorting functions.

#include <stdio.h>

int main() {
int n1, n2;
printf("Enter size of first sorted array: ");
scanf("%d", &n1);
int a[n1];
printf("Enter %d sorted elements: ", n1);
for(int i = 0; i < n1; i++)
scanf("%d", &a[i]);

printf("Enter size of second sorted array: ");


scanf("%d", &n2);
int b[n2];
printf("Enter %d sorted elements: ", n2);
for(int i = 0; i < n2; i++)
scanf("%d", &b[i]);

int merged[n1 + n2], i = 0, j = 0, k = 0;

while(i < n1 && j < n2) {


if(a[i] < b[j])
merged[k++] = a[i++];
else
merged[k++] = b[j++];
}

while(i < n1)


merged[k++] = a[i++];
while(j < n2)
merged[k++] = b[j++];

printf("Merged sorted array: ");


for(i = 0; i < n1 + n2; i++)
printf("%d ", merged[i]);
printf("\n");

return 0;
}
Array Lab Tasks in C (Medium Level)

Lab Task 5: Array Palindrome Checker

Problem Statement: Write a program in C to check if a given array is a palindrome (reads the same forward
and backward).

#include <stdio.h>

int main() {
int n;
printf("Enter size of array: ");
scanf("%d", &n);

int arr[n];
printf("Enter %d elements: ", n);
for(int i = 0; i < n; i++)
scanf("%d", &arr[i]);

int isPalindrome = 1;
for(int i = 0; i < n / 2; i++) {
if(arr[i] != arr[n - i - 1]) {
isPalindrome = 0;
break;
}
}

if(isPalindrome)
printf("The array is a palindrome.\n");
else
printf("The array is not a palindrome.\n");

return 0;
}

You might also like