C Program Solutions - Week 1
4. Find Largest and Second Largest in an Array
#include <stdio.h>
int main() {
int arr[] = {10, 25, 32, 45, 28, 90, 67};
int n = sizeof(arr)/sizeof(arr[0]);
int first = arr[0], second = -1;
for(int i = 1; i < n; i++) {
if(arr[i] > first) {
second = first;
first = arr[i];
} else if(arr[i] > second && arr[i] != first) {
second = arr[i];
}
}
printf("Largest: %d\n", first);
printf("Second Largest: %d\n", second);
return 0;
}
5. Print All Prime Numbers in an Array
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int num) {
if(num <= 1) return false;
for(int i = 2; i*i <= num; i++) {
if(num % i == 0)
return false;
}
return true;
}
int main() {
int arr[] = {11, 15, 17, 21, 23, 29, 33};
int n = sizeof(arr)/sizeof(arr[0]);
printf("Prime numbers: ");
for(int i = 0; i < n; i++) {
if(isPrime(arr[i]))
printf("%d ", arr[i]);
}
return 0;
}
6. Find Smallest Index with Two Consecutive Even Numbers
#include <stdio.h>
int main() {
int arr[] = {25, 19, 22, 23, 21, 12, 10, 17, 11, 13, 10};
int n = sizeof(arr)/sizeof(arr[0]);
for(int i = 0; i < n - 1; i++) {
if(arr[i] % 2 == 0 && arr[i+1] % 2 == 0) {
printf("First even pair index: %d\n", i);
break;
}
}
return 0;
}
7. Diagonal Elements of a Square Matrix
#include <stdio.h>
int main() {
int mat[4][4] = {
{5, 7, 9, 4},
{2, 4, 7, 3},
{1, 5, 9, 2},
{3, 7, 4, 8}
};
int n = 4;
printf("Main Diagonal: ");
for(int i = 0; i < n; i++) {
printf("%d ", mat[i][i]);
}
printf("\nAnti Diagonal: ");
for(int i = 0; i < n; i++) {
printf("%d ", mat[i][n - 1 - i]);
}
return 0;
}
8. Elements Below Diagonal
#include <stdio.h>
int main() {
int mat[4][4] = {
{5, 7, 9, 4},
{2, 4, 7, 3},
{1, 5, 9, 2},
{3, 7, 4, 8}
};
int n = 4;
printf("Elements below main diagonal:\n");
for(int i = 1; i < n; i++) {
for(int j = 0; j < i; j++) {
printf("%d ", mat[i][j]);
}
}
return 0;
}