LAST GROUP EXERCISES
#include <stdio.h>
#include <ctype.h> // Include the ctype.h library for toupper() function
#define MAX_SIZE 1000 // Maximum string size
int main() {
char str[MAX_SIZE];
// Read string from user
printf("Enter a string: ");
fgets(str, MAX_SIZE, stdin); // Use stdin to read from the standard input
// Remove newline character if it's there (which fgets() reads)
size_t len = strlen(str); // Include the string.h library for strlen function
if (len > 0 && str[len - 1] == '\n') {
str[len - 1] = '\0';
// Convert string to uppercase using toupper() function
for (int i = 0; str[i]; i++) {
str[i] = toupper(str[i]);
// Print the converted string
printf("Uppercase String: %s\n", str); // Use %s to print a string
return 0;
#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>
// Structure to store employee information
struct Employee {
char full_name[100];
char sex;
char cellphone_number[15];
int employee_id;
char marital_status;
};
// Function to validate and get employee information
void getEmployeeInfo(struct Employee *employee) {
printf("Enter Full Name: ");
fgets(employee->full_name, sizeof(employee->full_name), stdin);
do {
printf("Enter Sex (M/F): ");
scanf(" %c", &employee->sex);
employee->sex = toupper(employee->sex); // Convert input to uppercase
} while (employee->sex != 'M' && employee->sex != 'F');
printf("Enter Cellphone Number: ");
scanf("%s", employee->cellphone_number);
do {
printf("Enter Employee ID: ");
if (scanf("%d", &employee->employee_id) != 1) {
printf("Invalid input. Please enter a valid employee ID.\n");
while (getchar() != '\n'); // Clear input buffer
} while (employee->employee_id < 1000); // Assuming employee IDs must be at least 1000
do {
printf("Enter Marital Status (S for Single, M for Married): ");
scanf(" %c", &employee->marital_status);
employee->marital_status = toupper(employee->marital_status); // Convert input to uppercase
} while (employee->marital_status != 'S' && employee->marital_status != 'M');
// Function to display employee information
void displayEmployeeInfo(struct Employee employee) {
printf("\nEmployee Information:\n");
printf("Full Name: %s", employee.full_name);
printf("Sex: %c\n", [Link]);
printf("Cellphone Number: %s\n", employee.cellphone_number);
printf("Employee ID: %d\n", employee.employee_id);
printf("Marital Status: %c\n", employee.marital_status);
int main() {
struct Employee employee;
printf("Welcome to the Employee Registration Page\n");
getEmployeeInfo(&employee); // Get employee information
displayEmployeeInfo(employee); // Display the entered information
return 0;
#include <stdio.h>
#include <ctype.h> // Include the ctype.h library for character type checking
void determineInputType(char input);
int main() {
char input;
// Request user input
printf("Enter a single character or digit: ");
scanf(" %c", &input); // Use %c to read a single character, and add a space before %c to skip leading
whitespace
// Determine the type of input
determineInputType(input);
return 0;
void determineInputType(char input) {
if (isdigit(input)) {
printf("You entered an integer.\n");
} else if (isalpha(input)) {
printf("You entered a character.\n");
} else {
printf("You entered a special character.\n");
#include <stdio.h>
#include <string.h>
// Function to provide responses based on user queries
void respondToUserQuery(const char* query) {
if (strstr(query, "programs") != NULL) {
printf("CPUT offers a wide range of programs in the faculties of engineering, computing, and
architecture.\n");
} else if (strstr(query, "registration") != NULL) {
printf("To register at CPUT, please visit our official website and follow the registration
instructions.\n");
} else if (strstr(query, "bursary") != NULL) {
printf("CPUT provides bursary opportunities to eligible students. You can find more information on
our financial aid office's website.\n");
} else {
printf("I'm sorry, I couldn't understand your query. Please ask about EBE programs, registration, or
bursary opportunities.\n");
int main() {
printf("Welcome to the CPUT Chatbot. How can I assist you today? (Type 'exit' to quit)\n");
char user_input[100];
while (1) {
printf("You: ");
fgets(user_input, sizeof(user_input), stdin);
user_input[strcspn(user_input, "\n")] = '\0'; // Remove the newline character
if (strcmp(user_input, "exit") == 0) {
printf("CPUT Chatbot: Goodbye!\n");
break;
respondToUserQuery(user_input);
return 0;
#include <stdio.h>
union Data {
int i;
float f;
char str[20]; // Use a character array to store a string
};
int main() {
union Data data;
data.i = 10;
printf("Data as integer: %d\n", data.i);
data.f = 3.14;
printf("Data as float: %f\n", data.f); // Use %f to print a float
strcpy([Link], "Hello, Union!"); // Use the strcpy function to copy a string
printf("Data as string: %s\n", [Link]);
return 0;
#include <stdio.h>
// Define a structure named "Person" to represent a person's information
struct Person {
char name[50];
int age;
float height;
};
int main() {
// Declare a variable of type "struct Person"
struct Person person1;
// Assign values to the members of the structure
strcpy([Link], "John");
[Link] = 30;
[Link] = 5.9;
// Access and display the structure members
printf("Name: %s\n", [Link]);
printf("Age: %d\n", [Link]);
printf("Height: %.1f feet\n", [Link]);
return 0;
Algorithm for Implementing Access Control on Registration Page:
Start
Define constants for username length limit and special characters.
Prompt the user to enter a username.
Read and store the username.
Check the length of the username.
If the length of the username is greater than 6 characters, display an error message and ask the user to
provide a valid username.
If the length is within the limit, prompt the user to enter a password.
Read and store the password.
Check the password for the presence of at least one special character.
If the password does not contain a special character, display an error message and ask the user to
provide a password with a special character.
If both the username length and password meet the criteria, display a success message and proceed
with the registration process.
End
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define MAX_USERNAME_LENGTH 6
// Function to check if a character is a special character
bool isSpecialCharacter(char ch) {
// You can define your own set of special characters here
char specialCharacters[] = "!@#$%^&*()-_=+[]{}|;:',.<>?/";
for (int i = 0; specialCharacters[i] != '\0'; i++) {
if (ch == specialCharacters[i]) {
return true;
return false;
int main() {
char username[MAX_USERNAME_LENGTH + 1]; // +1 for the null terminator
char password[100]; // Assuming maximum password length is 100
printf("Registration Page\n");
// Get the username
printf("Enter a username (max 6 characters): ");
scanf("%s", username);
if (strlen(username) > MAX_USERNAME_LENGTH) {
printf("Username is too long. Please provide a username with a maximum of 6 characters.\n");
return 1; // Exit with an error code
// Get the password
printf("Enter a password (must contain at least one special character): ");
scanf("%s", password);
bool containsSpecialCharacter = false;
for (int i = 0; password[i] != '\0'; i++) {
if (isSpecialCharacter(password[i])) {
containsSpecialCharacter = true;
break;
if (!containsSpecialCharacter) {
printf("Password must contain at least one special character.\n");
return 1; // Exit with an error code
printf("Registration successful. Username: %s\n", username);
return 0; // Exit with success code
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUMBER_OF_ASSESSMENTS 5
#define PASSING_SCORE 50
#define TOTAL_STUDENTS 100000
// Macro to calculate the probability of failing the subject
#define PROBABILITY_OF_FAILURE(desired_outcomes, total_events) ((double)(desired_outcomes) /
(double)(total_events))
int main() {
srand(time(NULL)); // Seed the random number generator with the current time
int studentsBelowPassing = 0;
for (int student = 0; student < TOTAL_STUDENTS; student++) {
int totalScore = 0;
for (int assessment = 0; assessment < NUMBER_OF_ASSESSMENTS; assessment++) {
int assessmentScore = rand() % 101; // Generate a random score between 0 and 100
totalScore += assessmentScore;
int averageScore = totalScore / NUMBER_OF_ASSESSMENTS;
if (averageScore < PASSING_SCORE) {
studentsBelowPassing++;
double probability = PROBABILITY_OF_FAILURE(studentsBelowPassing, TOTAL_STUDENTS);
printf("Probability of failing the subject: %.2f\n", probability);
return 0;
#include <stdio.h>
#define VBE 0.7
#define BETA_DC 150
// Structure to store circuit components
struct CircuitComponents {
double VCC;
double RB;
double RC;
};
// Union to store calculated results
union CircuitOutput {
double IB;
double IE;
double IC;
double VCB;
double VCE;
};
// Function to calculate parameters based on user's choice
void calculateParameters(struct CircuitComponents components, union CircuitOutput *output, int
choice) {
double VB = ([Link] * [Link]) / ([Link] + [Link]);
double VE = VB - VBE;
switch (choice) {
case 1:
output->IB = VE / [Link];
break;
case 2:
output->IE = BETA_DC * output->IB;
break;
case 3:
output->IC = BETA_DC * output->IB;
break;
case 4:
output->VCB = VCB - VB;
break;
case 5:
output->VCE = VCB - VE;
break;
default:
printf("Invalid choice.\n");
// Function to print the calculated results
void printResult(const union CircuitOutput *output, int choice) {
switch (choice) {
case 1:
printf("Base Current (IB): %.6f A\n", output->IB);
break;
case 2:
printf("Emitter Current (IE): %.6f A\n", output->IE);
break;
case 3:
printf("Collector Current (IC): %.6f A\n", output->IC);
break;
case 4:
printf("Collector-to-Base Voltage (VCB): %.2f V\n", output->VCB);
break;
case 5:
printf("Collector-to-Emitter Voltage (VCE): %.2f V\n", output->VCE);
break;
default:
break;
int main() {
struct CircuitComponents components;
union CircuitOutput output;
printf("Enter circuit components:\n");
printf("VCC (Collector Voltage): ");
scanf("%lf", &[Link]);
printf("RB (Base Resistor): ");
scanf("%lf", &[Link]);
printf("RC (Collector Resistor): ");
scanf("%lf", &[Link]);
printf("Choose an option to calculate:\n");
printf("1. Base Current (IB)\n");
printf("2. Emitter Current (IE)\n");
printf("3. Collector Current (IC)\n");
printf("4. Collector-to-Base Voltage (VCB)\n");
printf("5. Collector-to-Emitter Voltage (VCE)\n");
int choice;
scanf("%d", &choice);
calculateParameters(components, &output, choice);
printResult(&output, choice);
return 0;
#include <stdio.h>
struct Date {
unsigned int day;
unsigned int month;
unsigned int year;
};
int compareDates(struct Date date1, struct Date date2) {
if ([Link] > [Link]) return 1;
else if ([Link] < [Link]) return -1;
else {
if ([Link] > [Link]) return 1;
else if ([Link] < [Link]) return -1;
else {
if ([Link] > [Link]) return 1;
else if ([Link] < [Link]) return -1;
else return 0; // dates are equal
int main() {
struct Date date1 = {10, 11, 2023};
struct Date date2 = {12, 10, 2023};
int result = compareDates(date1, date2);
if (result > 0) {
printf("Date 1 is more recent.\n");
} else if (result < 0) {
printf("Date 2 is more recent.\n");
} else {
printf("Both dates are equal.\n");
return 0;
}
#include <stdio.h>
#include <string.h>
struct Employee {
char name[50];
int id;
float salary;
};
int main() {
struct Employee employees[3];
for (int i = 0; i < 3; ++i) {
printf("Enter name: ");
scanf("%s", employees[i].name);
printf("Enter ID: ");
scanf("%d", &employees[i].id);
printf("Enter salary: ");
scanf("%f", &employees[i].salary);
int highestSalaryIndex = 0;
for (int i = 1; i < 3; ++i) {
if (employees[i].salary > employees[highestSalaryIndex].salary) {
highestSalaryIndex = i;
}
printf("Employee with highest salary:\n");
printf("Name: %s\n", employees[highestSalaryIndex].name);
printf("ID: %d\n", employees[highestSalaryIndex].id);
printf("Salary: %.2f\n", employees[highestSalaryIndex].salary);
return 0;
Write a program to store the roll no. (starting from 1), name and age of 5 students and then print the
details of the student with roll no. 2.
#include <stdio.h>
int main()
int i;
struct student
int roll_no;
char name[30];
int age;
};
struct student stud[5];
for(i=0; i<=4; i++)
printf("Student %d\n",i+1);
stud[i].roll_no = i+1;
printf("Enter name :\n");
scanf("%s",stud[i].name);
printf("Enter age :\n");
scanf("%d", &stud[i].age);
for(i=0; i<=4; i++)
if(stud[i].roll_no == 2)
printf("Student %d\n",i+1);
printf("Roll no. : %d\n", stud[i].roll_no);
printf("Name : %s\n", stud[i].name);
printf("Age. : %d\n", stud[i].age);
return 0;
#include <stdio.h>
#include <string.h>
struct Customer {
char name[50];
int accountNumber;
float balance;
};
void printCustomersWithLowBalance(struct Customer customers[], int numCustomers) {
printf("Customers with balance less than $200:\n");
for (int i = 0; i < numCustomers; ++i) {
if (customers[i].balance < 200) {
printf("%s\n", customers[i].name);
void addBalanceForRichCustomers(struct Customer customers[], int numCustomers) {
printf("Updated balances for customers with more than $1000:\n");
for (int i = 0; i < numCustomers; ++i) {
if (customers[i].balance > 1000) {
customers[i].balance += 100;
printf("%s: $%.2f\n", customers[i].name, customers[i].balance);
int main() {
struct Customer customers[15] = {
{"Alice", 1001, 150.50},
{"Bob", 1002, 2200.75},
{"Charlie", 1003, 180.20},
{"David", 1004, 1200.00},
// Add more customers as needed
};
int numCustomers = 4; // Number of customers in the array
// Task 1: Print names of customers with balance less than $200
printCustomersWithLowBalance(customers, numCustomers);
// Task 2: Add $100 to balance of customers with more than $1000 and print updated balances
addBalanceForRichCustomers(customers, numCustomers);
return 0;
#include <stdio.h>
#include <string.h>
struct Customer {
char name[50];
int accountNumber;
float balance;
};
void printCustomersWithLowBalance(struct Customer customers[], int numCustomers) {
printf("Customers with balance less than $200:\n");
for (int i = 0; i < numCustomers; ++i) {
if (customers[i].balance < 200) {
printf("%s\n", customers[i].name);
void addBalanceForRichCustomers(struct Customer customers[], int numCustomers) {
printf("Updated balances for customers with more than $1000:\n");
for (int i = 0; i < numCustomers; ++i) {
if (customers[i].balance > 1000) {
customers[i].balance += 100;
printf("%s: $%.2f\n", customers[i].name, customers[i].balance);
int main() {
struct Customer customers[15] = {
{"Alice", 1001, 150.50},
{"Bob", 1002, 2200.75},
{"Charlie", 1003, 180.20},
{"David", 1004, 1200.00},
// Add more customers as needed
};
int numCustomers = 4; // Number of customers in the array
// Task 1: Print names of customers with balance less than $200
printCustomersWithLowBalance(customers, numCustomers);
// Task 2: Add $100 to balance of customers with more than $1000 and print updated balances
addBalanceForRichCustomers(customers, numCustomers);
return 0;
}
#include<stdio.h>
int main()
printf("\n\n\t\tStudytonight - Best place to learn\n\n\n");
int n,i = 3, count, c;
printf("\nEnter the number of prime numbers required : ");
scanf("%d", &n);
if(n >= 1)
printf("\n\nFirst %d prime numbers are : ", n);
printf("2 ");
// iteration for n prime numbers
// i is the number to be checked in each iteration starting from 3
for(count = 2; count <= n; i++)
// iteration to check c is prime or not
for(c = 2; c < i; c++)
if(i%c == 0)
break;
if(c == i) // c is prime
{
printf("%d ", i);
count++; // increment the count of prime numbers
printf("\n\n\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
#include<stdio.h>
int main()
printf("\n\n\t\tStudytonight - Best place to learn\n\n\n");
float a, b, c;
printf("Enter 3 numbers:\n\n");
scanf("%f%f%f", &a, &b, &c);
if(a >= b && a >= c)
/*
%.3f prints the floating number
upto 3 decimal places
*/
printf("\n\nLargest number = %.3f ", a);
else if(b >= a && b >= c)
{
printf("\n\nLargest number is = %.3f", b);
else
printf("\n\nLargest number is = %.3f", c);
printf("\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
#include <stdio.h>
struct Date {
int day;
int month;
int year;
};
void addDaysToDate(struct Date *date, int daysToAdd) {
date->day += daysToAdd;
// Update month and year if the day exceeds the maximum days in a month
while (date->day > 31) {
if ((date->month == 4 || date->month == 6 || date->month == 9 || date->month == 11) && date-
>day > 30) {
date->day -= 30;
date->month++;
} else if (date->month == 2) {
// Check for leap year
if ((date->year % 4 == 0 && date->year % 100 != 0) || (date->year % 400 == 0)) {
if (date->day > 29) {
date->day -= 29;
date->month++;
} else {
if (date->day > 28) {
date->day -= 28;
date->month++;
} else {
date->day -= 31;
date->month++;
// Update year if the month exceeds December
if (date->month > 12) {
date->month -= 12;
date->year++;
int main() {
struct Date currentDate = {5, 11, 2023}; // Assuming current date is November 5, 2023
int daysToAdd = 45;
// Add 45 days to the current date
addDaysToDate(¤tDate, daysToAdd);
printf("Current Date: %d/%d/%d\n", [Link], [Link], [Link]);
return 0;
#include <stdio.h>
#include <string.h>
int main() {
char sentence[100];
int vowelCount = 0;
printf("Enter a sentence: ");
fgets(sentence, sizeof(sentence), stdin);
for (int i = 0; i < strlen(sentence); i++) {
char ch = sentence[i];
// Check if the character is a vowel (lowercase or uppercase)
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' ||
ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') {
vowelCount++;
}
printf("Number of vowels in the sentence: %d\n", vowelCount);
return 0;
#include <stdio.h>
struct Person {
char name[50];
int age;
float height;
};
int main() {
struct Person person[3];
for(int i = 0; i < 3; i++) {
printf("Enter name: ");
scanf("%s", person[i].name);
printf("Enter age: ");
scanf("%d", &person[i].age);
printf("Enter height: ");
scanf("%f", &person[i].height);
int tallestPersonIndex = 0;
for(int i = 1; i < 3; i++) {
if(person[i].height > person[tallestPersonIndex].height) {
tallestPersonIndex = i;
printf("Details of the tallest person:\n");
printf("Name: %s\n", person[tallestPersonIndex].name);
printf("Age: %d\n", person[tallestPersonIndex].age);
printf("Height: %.2f\n", person[tallestPersonIndex].height);
return 0;
// C program to demonstrate
// example of toupper() function.
#include <ctype.h>
#include <stdio.h>
int main()
int j = 0;
char str[] = "geekforgeeks\n";
char ch;
while (str[j]) {
ch = str[j];
putchar(toupper(ch));
j++;
}
return 0;
#include<stdio.h>
#include<math.h>
#include "rlc.h"
#define pi 3.142
#define pi 3.142
#ifndef RLC_H_INCLUDED
#define RLC_H_INCLUDED
double Cal_impedance(double fc,double fl,double r,double *Xc,double *Xl,double *z);
double Cal_RMS_current(double z,double v);
double Cal_series_voltage(double r,double Xc,double Xl,double rms_i);
double Cal_Res_frequency(double l,double c);
double Cal_power(double rms_i, double r);
#endif // RLC_H_INCLUDED
void Cal_impedance(double fc,double fl,double r,double *Xc,double *Xl,double *z)
double Xz;
*Xc = 1/(2*pi*fc);
*Xl = 2*pi*fl;
Xz = *Xl-*Xc;
*z = sqrt((r*r)+(Xz*Xz));
double Cal_power(double rms_i, double r)
{
double P = rms_i*rms_i*r;
return P;
#define pi 3.142
double Cal_Res_frequency(double l,double c)
double f;
double s,result;
s=l*c;
result=sqrt(s);
f=1/(2*pi*result);
return f;
double Cal_RMS_current(double z,double v)
double rms_i;
rms_i=v/z;
return rms_i;
double Cal_series_voltage(double r,double Xc,double Xl,double rms_i)
double Vr = r*rms_i; double Vl = Xl*rms_i; double Vc = Xc*rms_i;
double Vz = Vl-Vc;
double Vs = sqrt((Vr*Vr)+(Vz*Vz));
return Vs;
}
int main(void)
// declare variable list
double r,l,c,f,v;
double Xc,Xl,z,rms_i,res_f,Vs,P;
// prompt user to enter circuit information
printf("Enter the value of Resistor(unit in ohm): ");
scanf("%lf",&r);
printf("Enter the value of Inductor(unit in henry): ");
scanf("%lf",&l);
printf("Enter the value of Capacitor(unit in farad): ");
scanf("%lf",&c);
printf("Enter the value of Source Voltage(unit in volt): ");
scanf("%lf",&v);
printf("Enter the value of AC Frequency(unit in Hertz): ");
scanf("%lf",&f);
// call function to perform RLC circuit calculation
Cal_impedance(f*c,f*l,r,&Xc,&Xl,&z);
rms_i=Cal_RMS_current(z,v);
Vs=Cal_series_voltage(r,Xc,Xl,rms_i);
P=Cal_power(rms_i,r);
res_f=Cal_Res_frequency(l,c);
printf("\n");
printf("************************ SOLUTION ************************\n\n");
// Print out the solution
printf("the value of XC, capacitive reactance:%f ohms\n",Xc);
printf("the value of XL, inductance reactance:%f ohms\n",Xl);
printf("the value of Z, impedance:%f ohms\n",z);
printf("the value of Irms, rms current:%f ampere\n",rms_i);
printf("the value of Vs, series voltage:%f volt\n",Vs);
printf("the value of P, power consumed:%f watts\n",P);
printf("the value of res_F, resonant frequency:%f hertz\n",res_f);
printf("\n**********************************************************\n");
#include <stdio.h>
#include <stdbool.h>
void printPrimes(int n) {
bool primes[n+1];
for(int i = 0; i <= n; i++) {
primes[i] = true;
for(int p = 2; p * p <= n; p++) {
if(primes[p] == true) {
for(int i = p * p; i <= n; i += p) {
primes[i] = false;
printf("Prime numbers between 2 and %d are: ", n);
for(int i = 2; i <= n; i++) {
if(primes[i]) {
printf("%d ", i);
printf("\n");
int main() {
int n;
printf("Enter the upper limit to find prime numbers: ");
scanf("%d", &n);
printPrimes(n);
return 0;