Array Experiments in C Programming
Experiment Objectives
- Understnad one-dimensional and multi-dimensional array declaration and element referencing
- Learn array initialization methods
- Implement fundamental array algorithms
- Master string processing functions in C standard libray
One-Dimensional Array Applications
Random Number Sorting (Ascending Order)
Generate 10 random integers and sort them in ascending order.
void ascendingSort(int arr[], int size) { int i, j, temp; for(i = 0; i < size - 1; i++) { for(j = size - 1; j > i; j--) { if(arr[j] < arr[j-1]) { temp = arr[j]; arr[j] = arr[j-1]; arr[j-1] = temp; } } } }
int main() { int i, numbers[10]; srand(time(NULL));
printf("Generating 10 random integers:\n");
for(i = 0; i < 10; i++) {
numbers[i] = rand() % 100;
printf("%d ", numbers[i]);
}
printf("\n");
ascendingSort(numbers, 10);
printf("Sorted result:\n");
for(i = 0; i < 10; i++) {
printf("%d ", numbers[i]);
}
return 0;
}
</div>#### Random Number Sorting (Descending Order)
Sort 10 randomly generated integers in descending order.
<div>```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void descendingSort(int arr[], int size) {
int i, j, temp;
for(i = 0; i < size - 1; i++) {
for(j = i + 1; j < size; j++) {
if(arr[j] > arr[i]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
int i, numbers[10];
srand(time(NULL));
printf("Generating 10 random integers:\n");
for(i = 0; i < 10; i++) {
numbers[i] = rand() % 100;
printf("%d ", numbers[i]);
}
printf("\n");
descendingSort(numbers, 10);
printf("Sorted result:\n");
for(i = 0; i < 10; i++) {
printf("%d ", numbers[i]);
}
return 0;
}
Pascal's Triangle Generation
Generate Pascal's triangle based on user-input row count.
int main() { int triangle[50][50], i, j, rows; printf("Enter number of rows for Pascal's triangle: "); scanf("%d", &rows);
for(i = 0; i < rows; i++) {
triangle[i][0] = 1;
triangle[i][i] = 1;
}
for(i = 2; i < rows; i++) {
for(j = 1; j < i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
for(i = 0; i < rows; i++) {
for(j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
return 0;
}
</div>#### Day of Year Calculator
Calculate the day number of the year given a specific date.
<div>```
#include <stdio.h>
int monthDays[2][13] = {
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
int calculateDayOfYear(int year, int month, int day) {
int i, j, totalDays = 0;
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
i = 1;
else
i = 0;
for(j = 1; j < month; j++) {
totalDays += monthDays[i][j];
}
return totalDays + day;
}
int main() {
int year, month, day;
printf("Enter year, month, day: ");
scanf("%d%d%d", &year, &month, &day);
int dayNumber = calculateDayOfYear(year, month, day);
printf("This is day %d of the year\n", dayNumber);
return 0;
}
Palindrome Detection
Check if an input string is a palindrome.
int main() { char inputString[MAX_LENGTH]; char isPalindrome = 'Y'; int i, length;
printf("Enter a string: ");
scanf("%s", inputString);
length = strlen(inputString);
printf("String length: %d\n", length);
for(i = 0; i < length / 2; i++) {
if(inputString[i] != inputString[length - 1 - i]) {
isPalindrome = 'N';
break;
}
}
if(isPalindrome == 'Y')
printf("%s is a palindrome\n", inputString);
else
printf("%s is not a palindrome\n", inputString);
return 0;
}
</div>