EE5206 - Embedded Systems Design and Implementation
M.L.K Nilupul - 29034T
CA - Assignment 1
Task 1: Hollow Square Pattern
#include <stdio.h>
int main() {
int side = 5;
for (int i = 0; i < side; i++) {
for (int j = 0; j < side; j++) {
if (i == 0 || i == side - 1 || j == 0 || j == side - 1)
printf("* ");
else
printf(" ");
}
printf("\n");
}
return 0;
Task 2: Pascal’s Triangle
#include <stdio.h>
int main() {
int rows = 5;
for (int i = 0; i < rows; i++) {
int num = 1;
for (int space = 1; space < rows - i; space++)
printf(" ");
for (int j = 0; j <= i; j++) {
printf("%d ", num);
num = num * (i - j) / (j + 1);
}
printf("\n");
}
return 0;
}
Task 3: Hollow Right-Angled Triangle
#include <stdio.h>
int main() {
int side = 5;
for (int i = 0; i < side; i++) {
for (int j = 0; j <= i; j++) {
if (i == side - 1 || j == 0 || j == i)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
Task 4: Pyramid of Numbers
#include <stdio.h>
int main() {
int height = 4, num = 1;
for (int i = 1; i <= height; i++) {
for (int j = height; j > i; j--)
printf(" ");
for (int k = 1; k <= i; k++)
printf("%d ", num++);
printf("\n");
}
return 0;
}
Task 5: Zigzag Pattern
#include <stdio.h>
int main() {
int rows = 3;
int repeats = 2;
int width = (rows * 2 - 2) * repeats + 1;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < width; j++) {
if (j % (rows * 2 - 2) == i || j % (rows * 2 - 2) == (rows * 2 - 2 - i)) {
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
return 0;
Task 6: Hollow Diamond Pattern
#include <stdio.h>
int main() {
int side = 5;
for (int i = 1; i <= side; i++) {
for (int space = side - i; space > 0; space--)
printf(" ");
printf("*");
if (i > 1) {
for (int j = 1; j <= 2 * (i - 1) - 1; j++)
printf(" ");
printf("*");
}
printf("\n");
}
for (int i = side - 1; i >= 1; i--) {
for (int space = side - i; space > 0; space--)
printf(" ");
printf("*");
if (i > 1) {
for (int j = 1; j <= 2 * (i - 1) - 1; j++)
printf(" ");
printf("*");
}
printf("\n");
}
return 0;
}
Task 7: Prime Numbers in a Range
#include <stdio.h>
int main() {
int start = 1, end = 100;
for (int num = start; num <= end; num++) {
int isPrime = 1;
if (num < 2) isPrime = 0;
for (int j = 2; j * j <= num; j++) {
if (num % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime) printf("%d ", num);
}
printf("\n");
return 0;
}
Task 8: Number Palindrome Checker
#include <stdio.h>
int main() {
int number = 121, reversed = 0, original = number;
while (number > 0) {
reversed = reversed * 10 + number % 10;
number /= 10;
}
if (original == reversed)
printf("%d is a palindrome.\n", original);
else
printf("%d is not a palindrome.\n", original);
return 0;
}
Task 9: Armstrong Number Checker
#include <stdio.h>
int main() {
int number = 153, sum = 0, temp = number;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == number)
printf("%d is an Armstrong number.\n", number);
else
printf("%d is not an Armstrong number.\n", number);
return 0;
}
Task 10: Collatz Conjecture
#include <stdio.h>
int main() {
int number = 6, steps = 0;
printf("%d", number);
while (number != 1) {
if (number % 2 == 0)
number /= 2;
else
number = 3 * number + 1;
printf(" → %d", number);
steps++;
}
printf("\nNumber of steps: %d\n", steps);
return 0;
}