C Programming Lab Guide
C Programming Lab Guide
SOLVING
          LAB MANUAL
R22 Regulation
                      1
          VIJAY RURAL ENGINEERING COLLEGE
                       Manik Bhandar, Nizamabad-503003
                 PROGRAMMING FOR PROBLEM SOLVING LAB
Practice sessions:
   a. Write a simple program that prints the results of all the operators available in C
       (including pre/ post increment , bitwise and/or/not , etc.). Read required operand
       values from standard input.
   b. Write a simple program that converts one given data type to another using auto
       conversion and casting. Take the values form standard input.
Expression Evaluation:
   a. A building has 10 floors with a floor height of 3 meters each. A ball is dropped from
      the top of the building. Find the time taken by the ball to reach each floor. (Use the
      formula s = ut+(1/2)at^2 where u and a are the initial velocity in m/sec (= 0) and
      acceleration in m/sec^2 (= 9.8 m/s^2)).
   b. Write a C program, which takes two integer operands and one operator from the user,
      performs the operation and then prints the result. (Consider the operators +,-,*, /, %
      and use Switch Statement)
   c. Write a program that finds if a given number is a prime number
   d. Write a C program to find the sum of individual digits of a positive integer and test
      given number is palindrome.
   e. A Fibonacci sequence is defined as follows: the first and second terms in the sequence
      are 0 and 1. Subsequent terms are found by adding the preceding two terms in the
      sequence. Write a C program to generate the first n terms of the sequence.
   f. Write a C program to generate all the prime numbers between 1 and n, where n is a
      value supplied by the user.
   g. Write a C program to find the roots of a Quadratic equation.
   h. Write a C program to calculate the following, where x is a fractional value.
   i. 1-x/2 +x^2/4-x^3/6
   j. Write a C program to read in two numbers, x and n, and then compute the sum of this
      geometric progression: 1+x+x^2+x^3+ ................ +x^n. For example: if n is 3 and x is
      5, then the program computes 1+5+25+125.
   f. iii. Transpose of a matrix with memory dynamically allocated for the new matrix as
      row and column counts may not be same.
   g. Write C programs that use both recursive and non-recursive functions
   h. To find the factorial of a given integer.
   i. ii. To find the GCD (greatest common divisor) of two given integers.
   j. iii. To find x^n
   k. Write a program for reading elements using pointer into array and display the values
      using array.
   l. Write a program for display values reverse order from array using pointer.
   m. Write a program through pointer variable to sum of n elements from array.
                                                3
Files:
    a. Write a C program to display the contents of a file to standard output device.
    b. Write a C program which copies one file to another, replacing all lowercase
       characters with their uppercase equivalents.
    c. Write a C program to count the number of times a character occurs in a text file. The
       file name and the character are supplied as command line arguments.
    d. Write a C program that does the following:
       It should first create a binary file and store 10 integers, where the file name and 10
       values are given in the command line. (hint: convert the strings using atoi function)
       Now the program asks for an index and a value from the user and the value at that
       index should be changed to the new value in the file. (hint: use fseek function)
       The program should then read all 10 values and print them back.
    e. Write a C program to merge two files into a third file (i.e., the contents of the firs t
       file followed by those of the second are put in the third file).
Strings:
    a. Write a C program to convert a Roman numeral ranging from I to L to its decimal
       equivalent.
    b. Write a C program that converts a number ranging from 1 to 50 to Roman equivalent
    c. Write a C program that uses functions to perform the following operations:
    d. To insert a sub-string in to a given main string from a given position.
    e. ii. To delete n Characters from a given position in a given string.
    f. Write a C program to determine if the given string is a palindrome or not (Spelled
       same in both directions with or without a meaning like madam, civic, noon, abcba,
       etc.)
    g. Write a C program that displays the position of a character ch in the string S or – 1 if
       S doesn‘t contain ch.
    h. Write a C program to count the lines, words and characters in a given text.
Miscellaneous:
   a. Write a menu driven C program that allows a user to enter n numbers and then choose
       between finding the smallest, largest, sum, or average. The menu and all the choices
       are to be functions. Use a switch statement to determine what action to take. Display
       an error message if an invalid choice is entered.
             1               *              1               1             *
             12              **             23              22            **
             123             ***            456             333           ***
                                                            4444          **
                                                                          *
                                                 4
Sorting and Searching:
   a. Write a C program that uses non recursive function to search for a Key value in a given
   b. list of integers using linear search method.
   c. Write a C program that uses non recursive function to search for a Key value in a given
   d. sorted list of integers using binary search method.
   e. Write a C program that implements the Bubble sort method to sort a given list of
   f. integers in ascending order.
   g. Write a C program that sorts the given array of integers using selection sort in descending
       order
   h. Write a C program that sorts the given array of integers using insertion sort in ascending
       order
   i. Write a C program that sorts a given array of names
                                               5
Practice sessions:
   a. Write a simple program that prints the results of all the operators available in C (including pre/
      post increment, bitwise and/or/not, etc.). Read required operand values from standard input.
Program:
          #include<stdio.h>
          Void main( )
          {
          int a,b;
          printf(“enter the values of a and b”);
          scanf(“%d%d”,&a,&b);
          printf(“the arithmetic operators result is %d %d %d %d”, a+b,a-b,a*b,a/b);
          printf(“the relational operators result is %d %d %d %d”, a>b,a<b,a>=b,a<=b);
          printf(“the logical operators result is %d %d %d %d”, a&&b,a||b,!(a==b));
          printf(“the increment operator result is %d %d %d %d”,a++,++a,b++,++b);
          printf(“the decrement operator result is %d %d %d %d”,a--,--a,b--,--b);
          printf(“the bitwise AND operator result is %d”,a&b);
          printf(“the bitwise OR operator result is %d”,a|b);
          printf(“the bitwise NOT operator result is %d”,a^b);
          }
Output:
                                                      6
   b. Write a simple program that converts one given data type to another using auto conversion and
      casting. Take the values form standard input.
Program:
          #include<stdio.h>
          #include<conio.h>
          void main()
          {
          float sum,count;
          int mean;
          clrscr();
          printf("enter the value of sum and count");
          scanf("%f%f",&sum,&count);
          mean=sum/count;
          printf(" the value of mean is : %d\n", mean);
          }
Output:
                                                        7
Simple numeric problems:
a. Write a program for fiend the max and min from the three numbers.
Program:
       #include<stdio.h>
       #include<conio.h>
       void main()
       {
          int a,b,c;
          clrscr();
          printf("Enter 3 numbers");
       scanf("%d%d%d",&a,&b,&c);
       if(a>b && a>c)
       printf("Maximum number is a = %d",a);
       else if(b>a && b>c)
          printf("Maximum number is b = %d",b);
          else
          printf("Maximum number is c = %d",c);
       printf("\n");
          if(a<b && a<c)
          printf("Minimum number is a = %d",a);
       else if(b<a && b<c)
       printf("Minimum number is b = %d",b);
       else
       printf("Minimum number is c = %d",c);
          getch();
       }
Output:
                                               8
b. Write the program for the simple, compound interest.
Program:
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
   {
    int p,t;
    float r,si,amount,ci;
    clrscr( );
    printf("Please enter principle,time and rate of interest");
    scanf("%d%d%f",&p,&t,&r);
    si=p*t*r/100;
    printf("\nSimple interest = %.3f",si);
    amount=p*pow((1 +r/100),t);
    ci=amount-p;
    printf("\nCompound interest = %.3f",ci);
    getch( );
       }
Output:
                                                      9
     c. Write program that declares Class awarded for a given percentage of marks,
        where mark = 70% = Distinction. Read percentage from standard input.
Program:
         #include<stdio.h>
         #include<conio.h>
         void main()
         {
          int phy, chem, bio, math, comp;
         float per;
         clrscr();
         printf("Enter five subjects marks: ");
         scanf("%d%d%d%d%d", &phy, &chem, &bio, &math, &comp);
         per = (phy + chem + bio + math + comp) / 5.0;
         printf("Percentage = %.2f\n", per);
         if(per >= 70)
         {
         printf("Distinction");
         }
          else if(per <=40 )
          {
         printf("Failed");
         }
         else if(per <= 60 && per>40)
         {
         printf("Second Class");
         }
         else if(per <= 70 && per>60)
          {
         printf("First Class");
         }
    getch();
}
Output:
                                            10
d. Write a program that prints a multiplication table for a given number and the
number of rows in the table. For example, for a number 5 and rows = 3, the output
should be:
 5x1=5
 5 x 2 = 10
 5 x 3 = 15
Program:
            #include <stdio.h>
            #include<conio.h>
            void main()
            {
             int n, i, range;
            clrscr();
            printf("Enter an integer: ");
            scanf("%d",&n);
            printf("Enter the range: ");
            scanf("%d", &range);
            for(i=1; i<=range;i++)
            {
            printf("%d * %d = %d \n",n,i, n*i);
            }
            getch();
            }
Output:
                                        11
e. Write a program that shows the binary equivalent of a given positive number
between 0 to 255.
Program:
      #include <stdio.h>
      #include<conio.h>
       int binary_conversion(int);
       void main()
      {
       int num, bin;
       clrscr();
       printf("Enter a decimal number: ");
       scanf("%d", &num);
      bin = binary_conversion(num);
      printf("The binary equivalent of %d is %d\n", num, bin);
      getch();
      }
       int binary_conversion(int num)
      {
       if (num == 0)
      {
      return 0;
      }
       else
       {
      return (num % 2) + 10 * binary_conversion(num / 2);
      }
      }
Output:
                                        12
Expression Evaluation:
a. A building has 10 floors with a floor height of 3 meters each. A ball is dropped
from the top of the building. Find the time taken by the ball to reach each floor.
(Use the formula s = ut+(1/2)at^2 where u and a are the initial velocity in m/sec (=
0) and acceleration in m/sec^2 (= 9.8 m/s^2)).
                                         13
b. Write a C program, which takes two integer operands and one operator from the
user, performs the operation and then prints the result. (Consider the operators +,-
,*, /, % and use Switch Statement).
Program:
      #include <stdio.h>
      #include <conio.h>
      void main()
      {
       int a, b, c;
      char ch;
      clrscr() ;
       printf("Enter your operator(+, -, /, *, %)\n");
      scanf("%c", &ch);
      printf("Enter the values of a and b\n");
      scanf("%d%d", &a, &b);
       switch(ch)
         {
         case '+':       c = a + b;
                         printf("addition of two numbers is %d", c);
                          break;
         case '-':        c = a - b;
                          printf("substraction of two numbers is %d", c);
                           break;
         case '*':       c = a * b;
                          printf("multiplication of two numbers is %d", c);
                          break;
         case '/':      c = a / b;
                   printf("remainder of two numbers is %d", c);
                    break;
    case '%':        c = a % b;
                  printf("quotient of two numbers is %d", c);
                break;
    default: printf("Invalid operator");
              break;
       }
                getch();
      }
Output:
                                                 14
c. Write a program that finds if a given number is a prime number
Program:
   #include<stdio.h>
   int main()
   {
             int n,i,flag=0;
             printf("\nEnter a number:”);
             scanf("%d",&n);
             for(i=2;i<=n/2;i++)
             {
                     if(n%i==0)
                     {flag=1; break;
                     }
             }
             If(flag==0)
                 printf(“%d is a prime number”,n);
             else
                    printf(“%d is not a prime number”,n);
             return(0);
   }
Output:
Enter a number: 29
29 is a prime number
                                                15
  d. Write a C program to find the sum of individual digits of a positive integer
  and test given number is palindrome.
Program:
  #include<stdio.h>
  #include<conio.h>
  #include<math.h>
  void main ()
  {
   int number = 0, digit = 0, sum = 0;
   clrscr();
   printf("Enter any number\n ");
   scanf("%d", &number);
   while (number != 0)
   {
    digit = number % 10;
    sum = sum + digit;
    number = number / 10;
   }
   printf ("Sum of individual digits of a given number is %d", sum);
  getch();
  }
Output:
                                        16
   Test given number is palindrome.
Program:
         #include <stdio.h>
         void main()
         {
           int number, t, rev=0, rmndr;
           printf("Please enter a number to check Palindrome : ");
           scanf("%d",&number);
          printf("\nEntered number: %d", number);
            t = number;
        while (number > 0)
       {
          rmndr = number%10;
          rev = rev*10 + rmndr;
          number = number/10;
       }
       printf("\nReversed number: %d", rev);
        if(t == rev)
       {
          printf("\nEntered number %d is a palindrome", t);
       }
       else
       {
          printf("\nEntered number %d is not a palindrome", t);
       }
   }
Output:
                                           17
e) A Fibonacci sequence is defined as follows: the first and second terms in the
sequence are 0 and 1. Subsequent terms are found by adding the preceding two
terms in the sequence. Write a C program to generate the first n terms of the
sequence.
Program:
         #include <stdio.h>
         int main()
         {
           int i, n, t1 = 0, t2 = 1, nextTerm;
         printf("Enter the number of terms: ");
         scanf("%d", &n);
         printf("Fibonacci Series: ");
         for (i = 1; i <= n; ++i)
         {
            printf("%d, ", t1);
          nextTerm = t1 + t2;
          t1 = t2;
          t2 = nextTerm;
           }
         return 0;
         }
Output
                                            18
f. Write a C program to generate all the prime numbers between 1 and n, where n is
a value supplied by the user.
Program:
   #include<stdio.h>
   void main()
   {
   int m,n,i,nof;
   printf("\nEnter a number:”);
   scanf("%d",&n);
   printf("\nThe Prime numbers between 1 to n:”);
   for(m=2;m<=n;m++)
           {
           nof=0;
                 for(i=2;i<=m/2;i++)
                 {
                          if(m%i==0)
                              nof++;
                 }
                 if(nof==0)
                 printf("%d",m);
           }
   OUTPUT:
   Enter the value of n: 40
   The Prime numbers between 1 to n: 2 3 5 7 11 13 17
   19 23 29 31 37
                                        19
g. Write a C program to find the roots of a Quadratic equation.
Program:
  #include<stdio.h>
  #include<math.h>
  void main()
  {
        int a,b,c,disc;
        float root1,root2;
        clrscr();
        printf("ENTER VALUES FOR a,b,c:\n");
        scanf("%d %d %d",&a,&b,&c);
        disc=b*b-4*a*c;
        if(disc>0)
        {
        }
                else if(disc==0)
                          {
                      printf("THE ROOTS ARE EQUAL & THEY ARE..\n");
                      root1=-b/(2*a);
                      root2=root1;
                                          20
                 printf("Root1=%f",root1);
                 printf("Root2=%f",root2);
                 }
                 else
                 {
                 printf("THE ROOTS ARE IMAGINARY");
                 x=-b/(2*a);
                 y= sqrt(disc)/(2*a);
                 printf("Root1=%f+i%f",x,y);
                 printf("Root1=%f-i%f",x,y);
                 }
      getch();
      }
OUTPUT:
                                    21
h. Write a C program to calculate the following, where x is a fractional value.
   1-x/2 +x^2/4-x^3/6
                                         22
j. Write a C program to read in two numbers, x and n, and then compute the sum of
this geometric progression: 1+x+x^2+x^3+ .............+x^n. For example: if n is 3 and
x is 5, then the program computes 1+5+25+125.
                                          23
Arrays and Pointers and Functions:
        f. Write a C program to find the minimum, maximum and average in an array
            of integers.
                    #include <stdio.h>
                    #define MAX_SIZE 100 // Maximum array size
                    int main()
                    {
                     int arr[MAX_SIZE];
                     int i, max, min, size;
                    printf("Enter size of the array: ");
                     scanf("%d", &size);
                     printf("Enter elements in the array: ");
                    for(i=0; i<size; i++)
                    {
                    scanf("%d", &arr[i]);
                     }
                    max = arr[0];
                     min = arr[0];
                       for(i=1; i<size; i++)
                     {
                if(arr[i] > max)
                    {
                    max = arr[i];
                    }
          if(arr[i] < min)
          {
             min = arr[i];
        }
    }
      printf("Maximum element = %d\n", max);
    printf("Minimum element = %d", min);
    return 0;
}
                                           24
Output:
          25
2. Write a functions to compute mean, variance, Standard Deviation, sorting
of n elements in single dimension array.
Program:
#include <stdio.h>
#include <math.h>
#define MAXSIZE 10
void main()
{
   float x[MAXSIZE];
   int i, n;
   float average, variance, std_deviation, sum = 0, sum1 = 0;
    printf("Enter the value of N \n");
   scanf("%d", &n);
   printf("Enter %d real numbers \n", n);
   for (i = 0; i < n; i++)
   {
      scanf("%f", &x[i]);
   }
   /* Compute the sum of all elements */
   for (i = 0; i < n; i++)
   {
      sum = sum + x[i];
   }
   average = sum / (float)n;
   for (i = 0; i < n; i++)
   {
      sum1 = sum1 + pow((x[i] - average), 2);
   }
   variance = sum1 / (float)n;
   std_deviation = sqrt(variance);
   printf("Average of all elements = %.2f\n", average);
   printf("variance of all elements = %.2f\n", variance);
   printf("Standard deviation = %.2f\n", std_deviation);
getch();
}
                                  26
Output:
          27
       3 Write a C program that uses functions to perform the following:
Addition of Two Matrices
          #include <stdio.h>
          int main()
          {
            int m, n, c, d, first[10][10], second[10][10], sum[10][10];
          clrscr();
            return 0;
      }
                                          28
      Output:
Program:
#include <stdio.h>
int main()
{
  int m, n, p, q, c, d, k, sum = 0;
  int first[10][10], second[10][10], multiply[10][10];
  printf("Enter number of rows and columns of first matrix\n");
  scanf("%d%d", &m, &n);
  printf("Enter elements of first matrix\n");
  for (c = 0; c < m; c++)
    for (d = 0; d < n; d++)
     scanf("%d", &first[c][d]);
  printf("Enter number of rows and columns of second matrix\n");
  scanf("%d%d", &p, &q);
  if (n != p)
    printf("The matrices can't be multiplied with each other.\n");
  else
  {
    printf("Enter elements of second matrix\n");
    for (c = 0; c < p; c++)
     for (d = 0; d < q; d++)
       scanf("%d", &second[c][d]);
    for (c = 0; c < m; c++) {
     for (d = 0; d < q; d++) {
                                         29
     for (k = 0; k < p; k++) {
       sum = sum + first[c][k]*second[k][d];
     }
    multiply[c][d] = sum;
     sum = 0;
   }
    }
   printf("Product of the matrices:\n");
     for (c = 0; c < m; c++) {
      for (d = 0; d < q; d++)
       printf("%d\t", multiply[c][d]);
       printf("\n");
    }
  }
getch();
  return 0;
}
Output:
                                           30
Transpose of a matrix with memory dynamically allocated for the new matrix as
row and column counts may not be same
Program:
#include <stdio.h>
int main()
{
   int a[10][10], transpose[10][10], r, c, i, j;
   printf("Enter rows and columns of matrix: ");
   scanf("%d %d", &r, &c);
   // Storing elements of the matrix
   printf("\nEnter elements of matrix:\n");
   for(i=0; i<r; ++i)
      for(j=0; j<c; ++j)
      {
         printf("Enter element a%d%d: ",i+1, j+1);
         scanf("%d", &a[i][j]);
      }
   // Displaying the matrix a[][] */
   printf("\nEntered Matrix: \n");
   for(i=0; i<r; ++i)
      for(j=0; j<c; ++j)
      {
         printf("%d ", a[i][j]);
         if (j == c-1)
            printf("\n\n");
      }
   // Finding the transpose of matrix a
   for(i=0; i<r; ++i)
      for(j=0; j<c; ++j)
      {
         transpose[j][i] = a[i][j];
      }
   // Displaying the transpose of matrix a
   printf("\nTranspose of Matrix:\n");
   for(i=0; i<c; ++i)
      for(j=0; j<r; ++j)
      {
         printf("%d ",transpose[i][j]);
                                         31
          if(j==r-1)
             printf("\n\n");
       }
    return 0;
}
Output:
                               32
    Write C programs that use both recursive and non-recursive functions To
compute xn using recursive.
Program:
   #include<stdio.h>
   int power(int n1,int n2);
   int main()
   {
         int base,exp;
         printf(“enter base number:”);
         scanf(“%d”,&base);
         printf(“enter power number(positive integer):”);
         scanf(“%d”,&exp);
         printf(“%d^%d=%d”,base,exp,power(base,exp));
         return 0;
   }
   OUTPUT:
   enter base number:3
   enter power number(positive integer):3
   3^3=27
                                         33
Write C programs that use both recursive and non-recursive functions
Program:
#include <stdio.h>
#include <conio.h>
void main()
{
  int n, a, b;
  clrscr();
  printf("Enter any number\n");
  scanf("%d", &n);
  a = recfactorial(n);
  printf("The factorial of a given number using recursion is %d \n", a);
  b = nonrecfactorial(n);
  printf("The factorial of a given number using nonrecursion is %d ", b);
  getch();
}
int recfactorial(int x)
{
  int f;
  if(x == 0)
  {
   return(1);
  }
  else
  {
   f = x * recfactorial(x - 1);
   return(f);
  }
}
int nonrecfactorial(int x)
{
  int i, f = 1;
  for(i = 1;i <= x; i++)
  {
     f = f * i;
  }
                                          34
    return(f);
}
Output:
Enter any number
5
The factorial of a given number using recursion is 120
The factorial of a given number using nonrecursion is 120
ii. To find the GCD (greatest common divisor) of two given integers.
Program:
#include <stdio.h>
#include <conio.h>
void main()
{
  int a, b, c, d;
  clrscr();
  printf("Enter two numbers a, b\n");
  scanf("%d%d", &a, &b);
  c = recgcd(a, b);
  printf("The gcd of two numbers using recursion is %d\n", c);
  d = nonrecgcd(a, b);
  printf("The gcd of two numbers using nonrecursion is %d", d);
  getch();
}
int recgcd(int x, int y)
{
  if(y == 0)
  {
     return(x);
  }
  else
  {
    return(recgcd(y, x % y));
  }
                                          35
}
int nonrecgcd(int x, int y)
{
  int z;
  while(x % y != 0)
  {
   z = x % y;
   x = y;
   y = z;
  }
  return(y);
}
Output:
Enter two numbers a, b
36
The gcd of two numbers using recursion is 3
The gcd of two numbers using nonrecursion is 3
                                       36
     n. Write a program for reading elements using pointer into array and display
        the values using array.
Program:
#include <stdio.h>
int main()
{
    int data[5], i;
    printf("Enter elements: ");
    for(i = 0; i < 5; ++i)
    scanf("%d", data + i);
    printf("You entered: \n");
    for(i = 0; i < 5; ++i)
      printf("%d\n", *(data + i));
    return 0;
}
Output:
Enter elements:
1
2
3
5
4
You entered:
1
2
3
5
4
                                          37
Write a C program using pointers to read in an array of integers and print its
elements in reverse order.
Program:
#include<stdio.h>
#include<conio.h>
#define MAX 30
void main() {
  int size, i, arr[MAX];
  int *ptr;
  clrscr();
ptr = &arr[0];
    getch();
}
                                              38
Output :
Enter the size of array : 5
Enter 5 integers into array : 11 22 33 44 55
Elements of array in reverse order are :
Element 4 is : 55
Element 4 is : 44
Element 4 is : 33
Element 4 is : 22
Element 4 is : 11
Write a ‘C’ Program to compute the sum of all elements stored in an array using
pointers
Program:
#include<stdio.h>
#include<conio.h>
void main() {
  int numArray[10];
  int i, sum = 0;
  int *ptr;
Output:
Enter 10 elements: 11 12 13 14 15 16 17 18 19 20
The sum of array elements is 155
                                          39
                                         FILES
char filename[100], c;
  // Open file
  fptr = fopen(filename, "r");
  if (fptr == NULL)
  {
      printf("Cannot open file \n");
      exit(0);
  }
                                          40
2. Write a C program to copy one file to another file & while doing so replace
all lower case character to their equivalent upper case character.
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main()
{
     FILE *fp1, *fp2;
     char ch;
     fp1 = fopen("source.txt", "r");
     if (fp1 == NULL)
     {
          puts("File does not exist..");
          exit(1);
     }
     fp2 = fopen("target.txt", "w");
     if (fp2 == NULL)
     {
          puts("File does not exist..");
          fclose(fp1);
          exit(1);
     }
     while((ch=fgetc(fp1))!=EOF)
     {
          ch = toupper(ch);
          fputc(ch,fp2);
     }
     printf("\nFile successfully copied..");
     return 0;
}
Output:
                                      41
42
Write a C program to count the number of times a character occurs in a text
file. The file name and the character are supplied as command line
arguments.
#include <stdio.h>
#include <string.h>
{
    char string[100];
    int c, count[26] = {0};
    printf("Input a string\n");
    gets(string);
    find_frequency(string, count);
    printf("Character Count\n");
    for (c = 0 ; c < 26 ; c++)
    printf("%c \t %d\n", c + 'a', count[c]);
    return 0;
}
void find_frequency(char s[], int count[]) {
        int c = 0;
         while (s[c] != '\0')
                  {
        if (s[c] >= 'a' && s[c] <= 'z' )
        count[s[c]-'a']++;
         c++;
                  }
                  }
OUTPUT:
Input a String:
ABCDEF
A 1
B 1
C 1
D 1
E 1
F 1
                                               43
Write a C program to merge two files into a third file (i.e., the contents of the
first file followed by those of the second are put in the third file)
#include<stdio.h>
void main()
{
FILE *f1,*f2,*f3; char s[100];
f1=fopen("D:\file3.txt","r");
f2=fopen("D:\file4.txt","r");
f3=fopen("D:\file5.txt","w"); if(f1==NULL || f2==NULL || f3==NULL)
{
printf("error opening file"); exit(0);
}
while(fgets(s,99,f1)!=NULL)
fputs(s,f3);
while(fgets(s,99,f2)!=NULL)
fputs(s,f3);
fclose(f1);
fclose(f2);
fclose(f3);
}
OUTPUT:
Before                                 After
               PQRqrs
ABC            t                    ABC        PQR    ABC
DEF            STUuv                DEF        STU    DEF
                                                      PQR
                                                      STU
                                             44
                                         STRINGS
1. Write a C program to convert a Roman numeral to its decimal equivalent.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
   char rom[30];
   int a[30], l, i, k, dec;
   clrscr();
   printf("Enter the roman number\n");
   scanf("%s", &rom);
   l =strlen(rom);
   for(i = 0; i < l; i++)
   {
      switch (rom[i])
      {
     case 'I': a[i] = 1;
          break;
     case 'V': a[i] = 5;
          break;
     case 'X': a[i] = 10;
          break;
     case 'L': a[i] = 50;
          break;
     case 'C': a[i] = 100;
          break;
     case 'D': dec = dec + 500;
          break;
     case 'M': a[i] = 1000;
          break;
     default : printf("Invalid choice");
          break;
      }
   }
   k = a[l - 1];
   for(i = l - 1; i > 0; i--)
   {
      if(a[i] > a[i - 1])
                                     45
   {
   k = k - a[i - 1];
   }
   if(a[i] <= a[i - 1])
   {
   k = k + a[i - 1];
   }
 }
 printf("decimal equivalent is %d", k);
 getch();
}
Input & Output:
Enter the roman number
XIV
Decimal equivalent is 14
                                          46
2. Write a C program that converts a number ranging from 1 to 50 to Roman
equivalent
#include <stdio.h>
 void predigit(char num1, char num2);
void postdigit(char c, int n);
 char romanval[1000];
int i = 0;
int main()
{
   int j;
   long number;
                                         47
{
    if (number < (100 + 3 * 100))
    {
        postdigit('C', number / 100);
        number = number - (number / 100) * 100;
    }
    else
    {
        predigit('L', 'D');
        number = number - (500 - 100);
    }
}
else if (number >= 50 )
{
   if (number < (50 + 4 * 10))
   {
       postdigit('L', number / 50);
       number = number - (number / 50) * 50;
   }
   else
   {
       predigit('X','C');
       number = number - (100-10);
   }
}
else if (number >= 10)
{
   if (number < (10 + 3 * 10))
   {
       postdigit('X', number / 10);
       number = number - (number / 10) * 10;
   }
   else
   {
       predigit('X','L');
       number = number - (50 - 10);
   }
}
else if (number >= 5)
{
                                    48
         if (number < (5 + 4 * 1))
         {
             postdigit('V', number / 5);
             number = number - (number / 5) * 5;
         }
         else
         {
             predigit('I', 'X');
             number = number - (10 - 1);
         }
      }
      else if (number >= 1)
      {
         if (number < 4)
         {
             postdigit('I', number / 1);
             number = number - (number / 1) * 1;
         }
         else
         {
             predigit('I', 'V');
             number = number - (5 - 1);
         }
      }
    }
    printf("Roman number is: ");
    for(j = 0; j < i; j++)
       printf("%c", romanval[j]);
    return 0;
}
                                          49
  for (j = 0; j < n; j++)
     romanval[i++] = c;
}
Output:
Enter the number: 500
Roman number is be: D
   i. Write a C program that uses functions to perform the following operations:
                                        50
         To insert a sub-string in to a given main string from a given position.
Program:
#include<stdio.h>
#include<string.h>
OUTPUT:
enter main string for insertion:comer
enter sub string:put
Enter position:3
Main string after insertion: computer
                                         51
       To delete n Characters from a given position in a given string.
#include<stdio.h>
#include<string.h>
void deleteStr(char m[100],int n,int pos);
int main()
{
    char m[100],s[100]; int pos,n;
    printf("\nEnter main string for deletion:");
    gets(m);
     printf("\nEnter no of characters to be deleted:");
     scanf("%d",&n);
    printf("\nEnter position:");
    scanf("%d",&pos);
    deleteStr(m,n,pos);
    printf("\nmain string after deletion: %s",m);
    getch();
     return(0);
}
       void deleteStr(char m[100],int n,int pos)
       {
    int i,Len=strlen(m); for(i=pos;i<=(Len+1-n );i++)
              m[i]=m[i+n];
       }
OUTPUT:
Enter main string for deletion: abcdef
Enter no of characters to be deleted:2
Enter position:3
main string after deletion: abcf
                                         52
      Write a C program to determine if the given string is a palindrome or
      not (Spelled same in both directions with or without a meaning like
      madam, civic, noon, abcba, etc.)
#include <stdio.h>
#include <string.h>
int main(){
   char string1[20];
   int i, length;
   int flag = 0;
    printf("Enter a string:");
    scanf("%s", string1);
length = strlen(string1);
    if (flag) {
        printf("%s is not a palindrome", string1);
    }
    else {
        printf("%s is a palindrome", string1);
    }
    return 0;
}
                                                53
Write a C program that displays the position or index in the string S where
the string T begins, or – 1 if S doesn’t contain T.
#include<stdio.h>
#include<string.h>
#include<conio.h>
void main()
{
   char s[30], t[20];
   char *found;
   clrscr();
   puts("Enter the first string: ");
   gets(s);
   puts("Enter the string to be searched: ");
   gets(t);
   found = strstr(s, t);
   if(found)
   {
     printf("Second String is found in the First String at %d position.\n", found - s);
   }
   else
   {
     printf("-1");
   }
   getch();
}
Input & Output:
1. Enter the first string:
kali
Enter the string to be searched:
li
second string is found in the first string at 2 position
2. Enter the first string:
nagaraju
Enter the string to be searched:
raju
second string is found in the first string at 4 position
3. Enter the first string:
nagarjuna
Enter the string to be searched:
Ma -1
                                           54
Write a C program to count the lines, words and characters in a given text.
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
  char str[100];
  int i = 0, l = 0, f = 1;
  clrscr();
  puts("Enter any string\n");
  gets(str);
  for(i = 0; str[i] !='\0'; i++)
  {
     l = l + 1;
  }
  printf("The number of characters in the string are %d\n", l);
  for(i = 0; i <= l-1; i++)
  {
     if(str[i] == ' ')
     {
   f = f + 1;
     }
  }
  printf("The number of words in the string are %d", f);
  getch();
}
Input & Output:
                                          55
Miscellaneous:
a.) Write a menu driven C program that allows a user to enter n numbers and then choose
between finding the smallest, largest, sum, or average. The menu and all the choices are to be
functions. Use a switch statement to determine what action to take. Display an error message if
an invalid choice is entered.
PROGRAM:
Program:
#include <stdio.h>
int main()
{
    int i, j, rows;
    printf("Enter number of rows: ");
    scanf("%d",&rows);
    for(i=1; i<=rows; ++i)
    {
        for(j=1; j<=i; ++j)
        {
            printf("* ");
        }
        printf("\n");
    }
    return 0;
}
                                              56
OUTPUT:
Enter number of rows: 5
*
**
***
****
*****
PROGRAM:
#include <stdio.h>
int main()
{
    int i, j, rows;
    printf("Enter number of rows: ");
    scanf("%d",&rows);
    for(i=1; i<=rows; ++i)
    {
        for(j=1; j<=i; ++j)
        {
            printf("%d ",j);
        }
        printf("\n");
    }
    return 0;
}
OUTPUT:
Enter number of rows: 5
1
12
123
1234
12345
                                        57
PROGRAM:
#include <stdio.h>
int main()
{
    int rows, i, j, number= 1;
    printf("Enter number of rows: ");
    scanf("%d",&rows);
    for(i=1; i <= rows; i++)
    {
        for(j=1; j <= i; ++j)
        {
            printf("%d ", number);
            ++number;
        }
        printf("\n");
    }
    return 0;
}
OUTPUT:
Enter number of rows: 4
1
23
456
7 8 9 10
PROGRAM:
#include <stdio.h>
int main()
{
    int rows, i, j, number= 1;
    printf("Enter number of rows: ");
    scanf("%d",&rows);
                                        58
for(i=1; i <= rows; i++)
    {
        for(j=1; j <= i; ++j)
        {
            printf("%d ", number);
        }
        ++number;
        printf("\n");
    }
    return 0;
}
OUTPUT:
Enter number of rows: 4
1
22
333
4444
PROGRAM:
#include <stdio.h>
int main()
{
    int i, j, rows;
    printf("Enter number of rows: ");
    scanf("%d",&rows);
    for(i=1; i<=rows; ++i)
    {
        for(j=1; j<=i; ++j)
        {
            printf("* ");
        }
        printf("\n");
                                        59
    }
    for(i=rows-1; i>=1; --i)
    {
        for(j=1; j<=i; ++j)
        {
            printf("* ");
        }
        printf("\n");
    }
OUTPUT:
Enter number of rows: 4
*
**
***
****
***
**
*
Sorting and Searching:
a.) Write a C program that uses non recursive function to search for a Key value in a given
PROGRAM:
#include<stdio.h>
#include<conio.h>
void main()
{
 int i, a[20], n, key, flag = 0;
 clrscr();
 printf(“Enter the size of an array \n”);
 scanf(“%d”, &n);
 printf(“Enter the array elements”);
 for(i = 0; i < n; i++)
 {
  scanf(“%d”, &a[i]);
                                                   60
 }
 printf(“Enter the key elements”);
 scanf(“%d”, &key);
 for(i = 0; i < n; i++)
 {
  if(a[i] == key)
  {
   flag = 1;
   break;
  }
 }
 if(flag == 1)
  printf(“The key elements is found at location %d”, i + 1);
 else
  printf(“The key element is not found in the array”);
 getch();
}
Input & Output:
Enter the size of an array 6
Enter the array elements 50 10 5 200 20 1
Enter the key element 1
The key Element is found at location 6
                                                 61
     }
     return -1;
}
int main()
{
     int count, element, limit, arr[50], position;
     printf("Enter the Limit of Elements in Array:\t");
     scanf("%d", &limit);
     printf("Enter %d Elements in Array: \n", limit);
     for(count = 0; count < limit; count++)
     {
            scanf("%d", &arr[count]);
     }
     printf("Enter Element To Search:\t");
     scanf("%d", &element);
     position = BinarySearching(arr, limit, element);
     if(position == -1)
     {
            printf("Element %d Not Found\n", element);
     }
     else
     {
            printf("Element %d Found at Position %d\n", element, position + 1);
     }
     return 0;
}
OUTPUT:
Enter the Limit of Elements in Array:                     5
57
                                                     62
93
25
57
76
d.) Write a C program that implements the Bubble sort method to sort a given list of
integers in ascending order.
PROGRAM:
#include<stdio.h>
#include<conio.h>
void main()
{
 int n, a[20], temp, i, j;
 clrscr();
 printf("Enter the size of the array\n");
 scanf("%d", &n);
 printf("Enter the array elements\n");
 for(i = 0; i < n; i++)
 {
  scanf("%d", &a[i]);
 }
 for(i = 0; i < n - 1; i++)
 {
  for(j = 0; j < n - 1; j++)
  {
   if(a[j] > a[j + 1])
   {
    temp = a[j];
    a[j] = a[j + 1];
    a[j + 1] = temp;
   }
 }
}
 printf("The sorted array is\n");
 for(i = 0; i < n; i++)
 printf("%d\n", a[i]);
 getch();
}
                                                 63
Output:
Enter the size of the array: 5
Enter the array elements: 50 40 30 20 10
The sorted array is: 10 20 30 40 50
e.) Write a C program that implements the selection sort method to sort a given list of
integers in descending order.
PROGRAM:
                                                64
#include<stdio.h>
#include<conio.h>
void main()
{
int n, a[20], min, temp, i, j;
clrscr();
printf("Enter the size of the array\n");
scanf("%d", &n);
printf("Enter the array elements\n");
for(i = 0; i < n; i++)
{
    scanf("%d", &a[i]);
}
for(i = 0; i < n - 1; i++)
{
    min = i;
    for(j = i + 1; j < n; j++)
    {
    if(a[j] > a[min])
    min = j;
    }
    temp = a[i];
    a[i] = a[min];
    a[min] = temp;
}
printf("The sorted array is\n");
for(i = 0; i < n; i++)
printf("%d\n", a[i]);
getch();
Output:
Enter the size of the array: 7
Enter the array elements: 1 2 3 4 5 6 7
                                           65
The Sorted array is: 7 6 5 4 3 2 1
f.) Write a C program that sorts the given array of integers using insertion sort in ascending
order .
PROGRAM:
# include <stdio.h>
int main()
{
    int n, array[1000], c, d, t;
    printf("Enter number of elements\n");
    scanf("%d", &n);
    printf("Enter %d integers\n", n);
    for (c = 0; c < n; c++)
{
        scanf("%d", &array[c]);
    }
    for (c = 1 ; c <= n - 1; c++)
{
        d = c;
        while ( d > 0 && array[d-1] > array[d])
{
         t = array[d];
            array[d] = array[d-1];
            array[d-1] = t;
            d--;
        }
    }
    printf("Sorted list in ascending order:\n");
    for (c = 0; c <= n - 1; c++)
{
        printf("%d\n", array[c]);
    }
                                                   66
    return 0;
}
OUTPUT:
                                                    67
    printf("Enter %d names n\n", n);
    for (i = 0; i < n; i++)
    {
        scanf("%s", name[i]);
        strcpy(tname[i], name[i]);
    }
    for (i = 0; i < n - 1 ; i++)
    {
        for (j = i + 1; j < n; j++)
        {
            if (strcmp(name[i], name[j]) > 0)
            {
                strcpy(temp, name[i]);
                strcpy(name[i], name[j]);
                strcpy(name[j], temp);
            }
        }
    }
    printf("\n                                     \n");
    printf("Input NamestSorted names\n");
    printf("                                       \n");
    for (i = 0; i < n; i++)
    {
        printf("%s\t\t%s\n", tname[i], name[i]);
    }
    printf("                                       \n");
}
                                                   68
OUTPUT:
Enter the value of n
Enter 4 names n
apple
boy
zeebra
cat
apple apple
boy boy
zeebra cat
cat zeebra
69