assign6 finupload

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 21

#include <stdio.

h>

// Function to get the digit at a specified position in a number

int getDigit(int number, int position) {

return (number / position) % 10;

// Function to reverse a two-digit number

int reverseTwoDigitNumber(int number) {

return (number % 10) * 10 + (number / 10);

// Function to reverse a three-digit number

int reverseThreeDigitNumber(int number) {

return (number % 10) * 100 + ((number / 10) % 10) * 10 + (number / 100);

// Function to reverse a four-digit number

int reverseFourDigitNumber(int number) {

return (number % 10) * 1000 + ((number / 10) % 10) * 100 + ((number / 100) % 10) * 10 + (number
/ 1000);

int main() {

int choice;

printf("Choose an option:\n");

printf("107. Get ones digit of a two-digit number\n");

printf("108. Get tens digit of a two-digit number\n");

printf("109. Get ones digit of a three-digit number\n");

printf("110. Get tens digit of a three-digit number\n");

printf("111. Get hundreds digit of a three-digit number\n");


printf("112. Reverse a two-digit number\n");

printf("113. Reverse a three-digit number\n");

printf("114. Reverse a four-digit number\n");

printf("Enter your choice (107-114): ");

scanf("%d", &choice);

switch (choice) {

case 107: {

int number;

printf("Enter a two-digit number: ");

scanf("%d", &number);

int onesDigit = number % 10;

printf("Ones digit: %d\n", onesDigit);

break;

case 108: {

int number;

printf("Enter a two-digit number: ");

scanf("%d", &number);

int tensDigit = number / 10;

printf("Tens digit: %d\n", tensDigit);

break;

case 109: {

int number;

printf("Enter a three-digit number: ");

scanf("%d", &number);

int onesDigit = number % 10;

printf("Ones digit: %d\n", onesDigit);

break;

}
case 110: {

int number;

printf("Enter a three-digit number: ");

scanf("%d", &number);

int tensDigit = (number / 10) % 10;

printf("Tens digit: %d\n", tensDigit);

break;

case 111: {

int number;

printf("Enter a three-digit number: ");

scanf("%d", &number);

int hundredsDigit = number / 100;

printf("Hundreds digit: %d\n", hundredsDigit);

break;

case 112: {

int number;

printf("Enter a two-digit number: ");

scanf("%d", &number);

int reversedNumber = reverseTwoDigitNumber(number);

printf("Reversed number: %d\n", reversedNumber);

break;

case 113: {

int number;

printf("Enter a three-digit number: ");

scanf("%d", &number);

int reversedNumber = reverseThreeDigitNumber(number);

printf("Reversed number: %d\n", reversedNumber);

break;
}

case 114: {

int number;

printf("Enter a four-digit number: ");

scanf("%d", &number);

int reversedNumber = reverseFourDigitNumber(number);

printf("Reversed number: %d\n", reversedNumber);

break;

default:

printf("Invalid choice!\n");

return 0;

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

// Function to calculate the sum of digits of a two-digit number

int sumOfDigitsTwoDigit(int number) {

return (number / 10) + (number % 10);

// Function to calculate the sum of digits of a three-digit number

int sumOfDigitsThreeDigit(int number) {

return (number / 100) + ((number / 10) % 10) + (number % 10);

// Function to calculate the sum of digits of a four-digit number

int sumOfDigitsFourDigit(int number) {


return (number / 1000) + ((number / 100) % 10) + ((number / 10) % 10) + (number % 10);

// Function to reverse a number

int reverseNumber(int number) {

int reversed = 0;

while (number != 0) {

reversed = reversed * 10 + (number % 10);

number /= 10;

return reversed;

// Function to count the number of zeros in a number

int countZeros(int number) {

int count = 0;

while (number != 0) {

if (number % 10 == 0) {

count++;

number /= 10;

return count;

// Function to count the number of non-decreasing numbers in a range

int countNonDecreasingNumbers(int start, int end) {

int count = 0;

for (int i = start; i <= end; i++) {

int current = i;

int prevDigit = current % 10;


current /= 10;

int isNonDecreasing = 1;

while (current > 0) {

int digit = current % 10;

if (digit > prevDigit) {

isNonDecreasing = 0;

break;

prevDigit = digit;

current /= 10;

if (isNonDecreasing) {

count++;

return count;

// Function to check if a number is a palindrome

int isPalindrome(int number) {

int original = number;

int reversed = 0;

while (number > 0) {

reversed = reversed * 10 + (number % 10);

number /= 10;

return original == reversed;

int main() {

int choice;
printf("Choose an option:\n");

printf("115. Sum of digits of a two-digit number\n");

printf("116. Sum of digits of a three-digit number\n");

printf("117. Sum of digits of a four-digit number\n");

printf("118. Reverse a number\n");

printf("119. Count zeros in a number\n");

printf("120. Count non-decreasing numbers between 1000 and 9999\n");

printf("121. Check if a number is palindrome\n");

printf("Enter your choice (115-121): ");

scanf("%d", &choice);

switch (choice) {

case 115: {

int number;

printf("Enter a two-digit number: ");

scanf("%d", &number);

int sum = sumOfDigitsTwoDigit(number);

printf("Sum of digits: %d\n", sum);

break;

case 116: {

int number;

printf("Enter a three-digit number: ");

scanf("%d", &number);

int sum = sumOfDigitsThreeDigit(number);

printf("Sum of digits: %d\n", sum);

break;

case 117: {

int number;

printf("Enter a four-digit number: ");


scanf("%d", &number);

int sum = sumOfDigitsFourDigit(number);

printf("Sum of digits: %d\n", sum);

break;

case 118: {

int number;

printf("Enter a number to reverse: ");

scanf("%d", &number);

int reversed = reverseNumber(number);

printf("Reversed number: %d\n", reversed);

break;

case 119: {

int number;

printf("Enter a number: ");

scanf("%d", &number);

int count = countZeros(number);

printf("Number of zeros: %d\n", count);

break;

case 120: {

int count = countNonDecreasingNumbers(1000, 9999);

printf("Number of non-decreasing numbers between 1000 and 9999: %d\n", count);

break;

case 121: {

int number;

printf("Enter a number to check for palindrome: ");

scanf("%d", &number);

if (isPalindrome(number)) {
printf("The number is a palindrome.\n");

} else {

printf("The number is not a palindrome.\n");

break;

default:

printf("Invalid choice!\n");

return 0;

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

// Function to print ASCII value of a character

void printAsciiValue(char character) {

printf("ASCII value of '%c' is %d\n", character, character);

// Function to convert string to integer

int stringToInteger(const char *str) {

return atoi(str);

// Function to convert integer to string

void integerToString(int number) {

char str[50];

sprintf(str, "%d", number);

printf("String: %s\n", str);


}

// Function to print each digit of a number as character

void printDigitsAsCharacters(int number) {

while (number > 0) {

printf("%c\n", (char)((number % 10) + '0'));

number /= 10;

// Function to find the length of a string

int stringLength(const char *str) {

return strlen(str);

// Function to validate a string as a number

int validateNumber(const char *str) {

int isValid = 1;

for (int i = 0; i < strlen(str); i++) {

if (str[i] < '0' || str[i] > '9') {

isValid = 0;

break;

return isValid;

// Function to remove leading zeros from a number string

void removeLeadingZeros(char *str) {

int i = 0;

while (str[i] == '0') {


i++;

if (i > 0) {

strcpy(str, &str[i]);

// Function to reverse a string

void reverseString(char *str) {

int left = 0;

int right = strlen(str) - 1;

while (left < right) {

char temp = str[left];

str[left] = str[right];

str[right] = temp;

left++;

right--;

// Function to multiply two numbers (up to 50 digits each)

void multiplyLargeNumbers(const char *num1, const char *num2) {

int n1 = strlen(num1);

int n2 = strlen(num2);

int result[n1 + n2];

memset(result, 0, sizeof(result));

for (int i = n1 - 1; i >= 0; i--) {

for (int j = n2 - 1; j >= 0; j--) {

int digit1 = num1[i] - '0';

int digit2 = num2[j] - '0';


int sum = digit1 * digit2 + result[i + j + 1];

result[i + j] += sum / 10;

result[i + j + 1] = sum % 10;

// Convert result array to string

char finalResult[n1 + n2 + 1];

int index = 0;

int i = 0;

while (result[i] == 0 && i < n1 + n2) {

i++; // Skip leading zeros

while (i < n1 + n2) {

finalResult[index++] = result[i++] + '0';

finalResult[index] = '\0';

printf("Product: %s\n", finalResult);

// Function to convert integer array to character array and print using printf

void convertIntArrayToCharArray(int *arr, int size) {

char charArray[size + 1];

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

charArray[i] = arr[i] + '0';

charArray[size] = '\0';

printf("%s\n", charArray);

}
// Function to add two integer arrays (up to 50 digits each)

void addLargeNumbers(int *num1, int *num2, int size1, int size2) {

int maxSize = size1 > size2 ? size1 : size2;

int result[maxSize + 1];

memset(result, 0, sizeof(result));

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

int sum = result[i];

if (i < size1) {

sum += num1[size1 - 1 - i];

if (i < size2) {

sum += num2[size2 - 1 - i];

result[i] = sum % 10;

result[i + 1] = sum / 10;

// Convert result array to character array and print

printf("Sum: ");

convertIntArrayToCharArray(result, maxSize + 1);

int main() {

int choice;

printf("Choose an option:\n");

printf("131. Print each digit of a number as character\n");

printf("132. Convert integer array to character array and print using printf\n");

printf("133. Add two integer arrays of up to 50 digits\n");

printf("134. Adjust the carry in an integer array\n");

printf("135. Convert an integer array of up to 50 digits to character array and print using printf\n");
printf("136. Get two numbers of up to 50 digits and perform addition\n");

printf("137. Get a string and find positions of a character\n");

printf("138. Get a main string and sub string, find position of sub string in main string\n");

printf("139. Get a string using gets function and count all words in it\n");

printf("140-147. Structure related operations\n");

printf("Enter your choice (131-147): ");

scanf("%d", &choice);

switch (choice) {

case 131: {

int number;

printf("Enter a number to print each digit as character: ");

scanf("%d", &number);

printDigitsAsCharacters(number);

break;

case 132: {

int arr[] = {6, 12, 3, 15, 7};

int size = sizeof(arr) / sizeof(arr[0]);

convertIntArrayToCharArray(arr, size);

break;

case 133: {

int num1[] = {3, 4, 5, 6, 7, 2, 3, 4, 5};

int num2[] = {9, 8, 7, 6, 6, 5, 4, 3};

int size1 = sizeof(num1) / sizeof(num1[0]);

int size2 = sizeof(num2) / sizeof(num2[0]);

addLargeNumbers(num1, num2, size1, size2);

break;

case 134: {
int arr[] = {6, 12, 3, 15, 7};

int size = sizeof(arr) / sizeof(arr[0]);

for (int i = 0; i < size - 1; i++) {

if (arr[i] >= 10) {

arr[i + 1] += arr[i] / 10;

arr[i] %= 10;

convertIntArrayToCharArray(arr, size);

break;

case 135: {

int arr[] = {1, 4, 5, 8, 7, 6, 3};

int size = sizeof(arr) / sizeof(arr[0]);

convertIntArrayToCharArray(arr, size);

break;

case 136: {

char num1[51], num2[51];

printf("Enter the first number (up to 50 digits): ");

scanf("%s", num1);

printf("Enter the second number (up to 50 digits): ");

scanf("%s", num2);

addLargeNumbers(num1, num2);

break;

case 137: {

char mainString[100], character;

int positions[100];

int count = 0;

printf("Enter a string: ");


scanf("%s", mainString);

printf("Enter a character to find: ");

scanf(" %c", &character);

printf("Positions of '%c' in string: ", character);

for (int i = 0; i < strlen(mainString); i++) {

if (mainString[i] == character) {

positions[count++] = i + 1;

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

printf("%d%s", positions[i], i == count - 1 ? "\n" : ", ");

break;

case 138: {

char mainString[100], subString[100];

printf("Enter a main string: ");

scanf("%s", mainString);

printf("Enter a sub string to find: ");

scanf("%s", subString);

char *pos = strstr(mainString, subString);

if (pos) {

printf("Position of sub string in main string: %ld\n", pos - mainString + 1);

} else {

printf("Sub string not found in main string.\n");

break;

case 139: {
char inputString[100];

printf("Enter a string: ");

scanf(" %[^\n]", inputString);

int wordCount = 0;

char *token = strtok(inputString, " ");

while (token != NULL) {

wordCount++;

token = strtok(NULL, " ");

printf("Number of words in the string: %d\n", wordCount);

break;

default:

printf("Invalid choice!\n");

return 0;

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

// Function to count words in a string using strtok

int countWords(const char *str) {

int wordCount = 0;

char *token = strtok((char *)str, " ");

while (token != NULL) {

wordCount++;

token = strtok(NULL, " ");

}
return wordCount;

// Function to multiply two large numbers (up to 50 digits each)

void multiplyLargeNumbers(const char *num1, const char *num2) {

char result[102]; // To accommodate maximum product length

int len1 = strlen(num1);

int len2 = strlen(num2);

// Initialize result array with zero

for (int i = 0; i < len1 + len2; i++) {

result[i] = '0';

result[len1 + len2] = '\0';

// Multiply each digit and store the result in reverse order

for (int i = len1 - 1; i >= 0; i--) {

int carry = 0;

for (int j = len2 - 1; j >= 0; j--) {

int product = (num1[i] - '0') * (num2[j] - '0') + (result[i + j + 1] - '0') + carry;

carry = product / 10;

result[i + j + 1] = (product % 10) + '0';

result[i] = carry + '0';

// Remove leading zeros from result

int i = 0;

while (result[i] == '0') {

i++;
}

// Print the final result

printf("Product: %s\n", result + i);

int main() {

int choice;

printf("Choose an option:\n");

printf("139. Write a program to get a string using gets function and count all the words in it\n");

printf("140. Create a link list for the following structure and get user inputs of id, Maths mark,
Science Mark\n");

printf("141. Create a sample link list and insert a new entry before or after a given id\n");

printf("142. Create a doubly linked list and perform insert and delete operations\n");

printf("143. Create a program to implement a stack using linked list with push, pop, and display
operations\n");

printf("144. Create a program to implement a queue using linked list with add, remove, and
display operations\n");

printf("145. Create a program to print the ASCII value of a character\n");

printf("146. Create a program to convert a string to an integer\n");

printf("147. Create a program to convert an integer to a string\n");

printf("Enter your choice (139-147): ");

scanf("%d", &choice);

switch (choice) {

case 139: {

char inputString[100];

printf("Enter a string: ");

getchar(); // Clear input buffer

gets(inputString);

int wordCount = countWords(inputString);


printf("Number of words in the string: %d\n", wordCount);

break;

case 140:

// Code for creating a linked list and inputting data (not provided here)

break;

case 141:

// Code for creating a sample linked list and performing insert operations (not provided here)

break;

case 142:

// Code for creating a doubly linked list and performing insert/delete operations (not provided
here)

break;

case 143:

// Code for implementing a stack using linked list (not provided here)

break;

case 144:

// Code for implementing a queue using linked list (not provided here)

break;

case 145: {

char character;

printf("Enter a character: ");

scanf(" %c", &character);

printf("ASCII value of '%c' is %d\n", character, character);

break;

case 146: {

char str[50];

printf("Enter a string to convert to integer: ");

scanf("%s", str);

int number = atoi(str);


printf("Integer value: %d\n", number);

break;

case 147: {

int number;

printf("Enter an integer to convert to string: ");

scanf("%d", &number);

char str[50];

sprintf(str, "%d", number);

printf("String: %s\n", str);

break;

default:

printf("Invalid choice!\n");

return 0;

You might also like