0% found this document useful (0 votes)
92 views34 pages

C Programming Laboratory (13MCA16) : 1 Prepared by Prof. Suma M.G., Asst. Professor - RNSIT, Bangalore

This document provides C program code examples for various tasks related to the C Programming Laboratory course. The programs cover topics like: 1. Converting between Celsius and Fahrenheit temperatures with appropriate formulas. Calculating employee salary based on basic pay, HRA, TA and IT deductions. 2. Checking if a number is a perfect number. Finding the roots of a quadratic equation with error handling. Converting decimal numbers to hexadecimal. 3. Implementing menu driven programs to insert/delete elements from an array, and encode/decode strings by converting characters to ASCII, adding a value, and decoding. 4. The programs demonstrate the use of loops, conditional statements, functions, arrays and strings to solve

Uploaded by

mgsuma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views34 pages

C Programming Laboratory (13MCA16) : 1 Prepared by Prof. Suma M.G., Asst. Professor - RNSIT, Bangalore

This document provides C program code examples for various tasks related to the C Programming Laboratory course. The programs cover topics like: 1. Converting between Celsius and Fahrenheit temperatures with appropriate formulas. Calculating employee salary based on basic pay, HRA, TA and IT deductions. 2. Checking if a number is a perfect number. Finding the roots of a quadratic equation with error handling. Converting decimal numbers to hexadecimal. 3. Implementing menu driven programs to insert/delete elements from an array, and encode/decode strings by converting characters to ASCII, adding a value, and decoding. 4. The programs demonstrate the use of loops, conditional statements, functions, arrays and strings to solve

Uploaded by

mgsuma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 34

C Programming Laboratory (13MCA16)

Subject Code: 13MCA16


50

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

I.A. Marks:

C Programming Laboratory (13MCA16)


Hours/Week: 3
Total Hours: 42

1.

Exam Marks: 50
Exam Hours: 3

a) Write a program to convert degrees into Fahrenheits and vice versa.

The Process:

This Program converts the Temperature from Celsius to Fahrenheit and vice
versa. Mind you, the formula for the conversion

Celsius to Fahrenheit
Use the following formula to convert Celsius degree into the Fahrenheit
reading:

Fahrenheit to Celsius
Use the following formula to convert Fahrenheit degree into the Celsius
reading:

Program:

#include<stdio.h>
#include<conio.h>
void main()
{
float fd,cd;
clrscr();
printf("Enter a temperature in celsius\n");
scanf("%f",&cd);
fd=(float)9/5 * cd+32;
printf("Converted value from celsius to fahrenheit = %.3f",fd);
cd=(float)5/9*(fd-32);
printf("\n\nConverted value from fahrenheit to celsius = %.3f",cd);
getch();
}
Output:

Enter a temperature in celsius


22
Converted value from celsius to fahrenheit = 71.600
Converted value from fahrenheit to celsius = 22.000

1.

b) Calculate the salary of an employee given his basic pay, HRA = 10% of basic pay, TA = 5% of his
basic pay and
deductions IT = 2.5% of his basic pay.

The Process:

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


This program is to calculate the employee HRA, TA, and IT by using
following formula:
i.
ii.
iii.
iv.
v.

HRA
TA
GRS
IT
Netsalary

=
=
=
=
=

(10/100) * basic pay


(5/100) * basic pay
basicpay + HRA + TA
(2.5/100) * basic pay
GRS - IT

Program:

#include<stdio.h>
#include<conio.h>
void main()
{
float hra,ta,d_it,bs,netsal,grs;
clrscr();
printf("enter the basic salary\n");
scanf("%f",&bs);
if(bs<=0.0)
{
printf("You entered wrong basic salary");
getch();
exit(0);
}
hra=(float)10/100*bs;
ta=(float)5/100*bs;
grs=bs+hra+ta;
d_it=(2.5/100)*bs;
netsal=grs-d_it;
printf("HRA\tTA\tGRS\tITDeduction\tNetSalary\n");
printf("---------------------------------------------\n");
printf("%.2f\t%.2f\t%.2f\t%.2f\t%.2f",hra,ta,grs,d_it,netsal);
getch();
}
Output:

Enter the basic salary


5000
HRA
TA
GRS
ITDeduction
NetSalary
--------------------------------------------500.00 250.00 5750.00
125.00
5625.00

2.

a) Check whether a number is a perfect number or not.

The Process:

A number is called a perfect number if by adding all the positive divisors


of the number (except itself), the result is the number itself.

Example: 6, divisor of 6 are 1,


3

2, 3.

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


Sum of divisors is

1+2+3=6.

Program:

#include<stdio.h>
#include<conio.h>
void main()
{
int n,i=1,sum=0;
clrscr();
printf("Enter a number:\n");
scanf("%d",&n);
if(n<=0)
{
printf("Wrong Input!\n");
getch();
exit(0);
}
printf("The Numbers:\n");
while(i<n)
{
if(n%i == 0)
{
sum=sum+i;
//printf("%d\n",i);
}
i++;
}
if(sum==n)
printf("The number %d is PERFECT\n",n);
else
printf("The number %d is NOT PERFECT\n",n);
}

getch();

Output:

Enter a number:
6
1
2
3
The number 6 is PERFECT
Enter a number:
5
1
The number 5 is NOT PERFECT

2. b) Write a program to find the roots of a quadratic equation with appropriate error messages.
The Process:

Every Quadratic equation has two roots. And this program is implemented to
find the roots of the entered quadratic equation.
Logic : The roots of any quadratic equation of the form,
are,
4

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)

The same equation is computerized here. The program asks user to enter the
three coefficients a, b and c. Then it finds out numerator- which is the
discriminate, and the denominator of the equation of the roots. Then it
checks if the numerator is greater, equals or less than zero. Prints out
the results according to the situation.
Program:

#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
float a, b, c, desc,r1,r2,real,img;
clrscr();
printf("Enter the values of a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
if(a==0)
{
printf("\nEquation is linear and has only one root. ");
printf("\nAnd the root is %5.2f", -c/b);
getch();
return;
}
else
{
desc=b*b-4*a*c;
if(desc==0)
{
r1=-b/(2*a);
r2=-b/(2*a);
printf("\nThe roots are real and equal");
printf("\n r1 = %5.2f \t r2 = %5.2f",r1,r2);
getch();
return;
}
else if(desc>0)
{
r1=(-b+sqrt(desc))/(2*a);
r2=(-b-sqrt(desc))/(2*a);
printf("\nThe roots are real and distinct");
printf("\n r1=%5.2f\t r2=%5.2f",r1,r2);
getch();
return;
}
else
{
real=-b/(2*a);
img=sqrt(-desc)/(2*a);
printf("\nThe roots are imaginary");
printf("\n r1 = %5.2f + %5.2f i\n",real,img);
printf(" r2 = %5.2f - %5.2f i",real,img);
getch();
return;
5

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


}

}
}

Output:

Enter the values of a,b,c:


0
2
4
Equation is linear and has only one root.
And the root is -2.00
Enter the values of a,b,c:
2
4
2
The roots are real and equal
r1 = -1.00
r2 = -1.00
Enter the values of a,b,c:
2
4
1
The roots are real and distinct
r1=-0.29
r2=-1.71
Enter the values of a,b,c:
1
2
3
The roots are imaginary
r1 = -1.00 + 2.83 i
r2 = -1.00 - 2.83 i

3.

a) Find Armstrong number.

An Armstrong number of three digits is an integer such that the sum of the
cubes of its digits is equal to the number itself.

Example -

371

is an Armstrong number

since 33

+ 73 + 13 = 371

Program:

#include<stdio.h>
#include<conio.h>
void main()
6

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


{

int armstr=0,n,rem,t;
clrscr();
printf("Enter the number: ");
scanf("%d",&n);
t=n;
if(n<=0 || n<=99 || n>999)
{
printf("Entered value is out of range!\n");
getch();
exit(0);
}
while(n>0)
{
rem = n%10;
armstr = armstr+rem*rem*rem;
n = n/10;
}
if(t==armstr)
printf("The number %d is ArmStrong\n",t);
else
printf("The number %d is Not ArmStrong\n",t);
getch();

}
Output:

Enter the number: 153


Entered number 153 is ArmStrong
Enter the number: 123
Entered number 123 is

3.

Not ArmStrong

b) Convert a decimal number to a hexadecimal number.

The Process:
1. Divide the "desired" base (in this case base 16) INTO the number you are
trying to convert.
2. Write the quotient (the answer) with a remainder
3. Repeat this division process using the whole number from the previous
quotient (the number in front of the remainder).
4. Continue repeating this
remainder is only zero.

division

until

the

number

in

5. The answer is the remainders read from the bottom up.

Example:

12310 = 7B16

(a Hexadecimal Conversion)

Program:

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

front

of

the

C Programming Laboratory (13MCA16)


#include<stdio.h>
#include<conio.h>
void main()
{
int n,p,rem,count=0,i;
char res[20];
clrscr();
printf("Enter the Decimal Number(b/n 0-9): ");
scanf("%d",&n);
p=n;
if(n<=0)
{
printf("Wrong Input!");
getch();
exit(0);
}
while(n!=0)
{
rem=n%16;
if(rem>9)
res[count++]='A'+ rem-10;
else
res[count++]=rem+'0';
n=n/16;
}
printf("The Hexadecimal number is=");
for(i=--count;i>=0;i--)
printf("%c",res[i]);
getch();
}
Output:

Enter the Number: 123


The Hexadecimal number is= 7B

4.

Write a menu driven C program to


a. Insert an element into an array
b. Delete an element from the array (first occurrence)

Program:

#include<stdio.h>
#include<conio.h>
void main()
{
int a[50],n,i,j,ch,key,pos,flag;
clrscr();
printf("Enter the array size:\n");
scanf("%d",&n);
printf("Enter the array elements:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(;;)
8

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


{

printf("\n1. Insert and element\n2. Delete an element\n3.


Display\n4. Exit\n");
printf("\nEnter your choice:");
scanf("%d",&ch);
switch(ch)
{
case 1:
printf("Enter an element to be insert:\n");
scanf("%d",&key);
printf("\nEnter the position:");
scanf("%d",&pos);
if((pos>n+1)||(pos<=0))
printf("Entered position is out Bound\n");
else
{
for(i=n-1;i>=pos-1;i--)
{
a[i+1]=a[i];
}
a[pos-1]=key;
n++;
printf(" The element %d inserted
successfully \n",key);
}
break;
case 2:
if(n<=0)
printf("No Elements found to delete\n");
else
{
printf("Enter a element to delete: \n");
scanf("%d",&key);
for(i=0;i<n;i++)
{
flag=0;
if(a[i]==key)
{
for(j=i;j<n;j++)
a[j]=a[j+1];
flag=1;
pos=i;
n--;
break;
}
}
if(flag==1)
printf("Element %d deleted
successfully at position %d",key,pos+1);
else
printf("Element %d is not found", key);
}
break;
case 3:
if(n<=0)
printf("No elements to display");
else
{
printf("The Elements are:\n");
for(i=0;i<n;i++)
Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)

printf("%d\t",a[i]);
}
break;
case 4:
exit(0);
default:
printf("Wrong Input:\n");

Output:

Enter the array size:


3
Enter the array elements:
10
20
30
1.
2.
3.
4.

Insert and element


Delete an element
Display
Exit

Enter your choice:1


Enter an element to be insert:
15
Enter the position:2
The element 15 inserted successfully
1.
2.
3.
4.

Insert and element


Delete an element
Display
Exit

Enter your choice:3


The Elements are:
10
15
20
1.
2.
3.
4.

30

Insert and element


Delete an element
Display
Exit

Enter your choice:2


Enter a element to delete:
20
Element 20 deleted successfully at position 3
1.
2.
3.
4.

Insert and element


Delete an element
Display
Exit

Enter your choice:3


The Elements are:
10
15
30
1.
2.
3.
4.

Insert and element


Delete an element
Display
Exit
10

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


Enter your choice:4

5.

Write a Menu Driven C Program to


a. Accept a string from the user
b. Encode the string.
c. Decode the string
Apply the following procedure to encode it.
a. Convert each character in a string to its ASCI value.
b. Add an integer value to it and display the encoded string
c. Decode the string using reverse procedure and display.

The Process:
Encoding

is the process of putting a sequence of characters (letters,


numbers, punctuation, and certain symbols) into a specialized format for
efficient transmission or storage.
Decoding is the opposite process the conversion of an encoded format back
into the original sequence of characters.
Encoding and decoding are used in data communications, networking, and
storage.
The
code
used
by
most
computers
for
text
files
is
known as ASCII (American
Standard Code
for Information
Interchange).
ASCII
can
depict
uppercase
and
lowercase
alphabetic
characters,
numerals, punctuation marks, and common symbols.
Program:

#include<stdio.h>
#include<conio.h>
void main()
11

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


{

char str[50];
int i,ch,key,flag=0;
clrscr();
for(;;)
{
printf("\n1. Accept\n2. Encode\n3. Decode\n4. Exit\n");
printf("\nEnter your choice:");
scanf("%d",&ch);
switch(ch)
{
case 1:

printf("Enter a string: ");


fflush(stdin);
gets(str);
flag=1;
break;
case 2:
if(flag==1)
{
printf("Enter the key for encode(0-9):\n");
scanf("%d",&key);
printf("\nOriginal String: %s\n",str);
for(i=0;str[i]!='\0';i++)
str[i]=str[i]+key;
flag=2;
printf("\nString after ENCODED: %s",str);
}
else
printf("Enter the Input\n");

break;
case 3:
if(flag==2)
{
printf("\nString after DECODED:");
textbackground(CYAN);
textcolor(RED+BLINK);
for(i=0;str[i]!='\0';i++)
str[i]=str[i]-key;
}
else

}
}

cprintf("%s",str);

printf("Enter the Input and Encode!\n");


break;
case 4:
exit(0);
default:
printf("\nWrong Input");

Output:

1.
2.
3.
4.

Accept
Encode
Decode
Exit
12

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


Enter your choice:1
Enter a string: C Lab
1.
2.
3.
4.

Accept
Encode
Decode
Exit

Enter your choice:2


Enter the key for encode(b/w 0 - 9):
4
Original String: C Lab
String after ENCODED: G$Pef
1. Accept
2. Encode
3. Decode
4. Exit
Enter your choice:

6.

Write a C program to multiply two matrices that satisfy the constraint of matrix multiplication.

The Process:
You can multiply two matrices if, and only if, the number of columns in the
first matrix equals the number of rows in the second matrix. Otherwise, the
product of two matrices is undefined.
The product matrix's dimensions are

(rows of first matrix) (columns of the second matrix )

Example:

In order to multiply matrices,


Step 1:

Make sure that the number of columns in the 1st one equals the number
of rows in the 2nd one.

Step 2: Multiply the elements of each row of the first matrix by the elements
of each column in the second matrix.

Step 3:

Add the products.

It's easier to understand if you go through the example


i.

for the 1st row and 1st column:


13

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

below.

C Programming Laboratory (13MCA16)


(1, 2, 3) (7, 9, 11) = 17 + 29 + 311 = 58
for the 1st row and 2nd column:

ii.

(1, 2, 3) (8, 10, 12) = 18 + 210 + 312 = 64


We can do the same thing for the 2nd row and 1st column:

iii.

(4, 5, 6) (7, 9, 11) = 47 + 59 + 611 = 139


And for the 2nd row and 2nd column:

iv.

(4, 5, 6) (8, 10, 12) = 48 + 510 + 612 = 154


And we get

Program:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int m,n,p,q,i,j,k;
int a[10][10],b[10][10],c[10][10];
clrscr();
printf("enter the size of the matrix A \n");
scanf("%d%d",&m,&n);
printf("Enter the size of the matrix B\n");
scanf("%d%d",&p,&q);
// check whether multiplication is possible or Not
if(n != p)
{
printf("Multiplication is not possible \n");
getch();
exit(0);
}
printf("\nEnter the elements of matrix A\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf("\nEnter the elements of matrix B \n");
for(i=0;i<p;i++)
for(j=0;j<q;j++)
scanf("%d",&b[i][j]);
// multiply A and B
14

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


for(i=0;i<m;i++)
{
for(j=0;j<q;j++)
{
c[i][j]=0;
for(k=0;k<n;k++)
{
c[i][j]+= a[i][k]*b[k][j];
}
}
}
//displaying the result
printf("\nThe resultant matrix C is\n");
for(i=0;i<m;i++)
{
for(j=0;j<q;j++)
{
printf("%3d",c[i][j]);
}
printf("\n");
}
getch();
}
Output:

Enter the size of the matrix A


2 3
Enter the size of the matrix B
3 2
Enter the elements of matrix A
1
2
1
3
2
3
Enter the elements of matrix B
1
2
3
1
2
3
The resultant matrix C is
9 7
15 17
Enter the size of the matrix A
2 3
Enter the size of the matrix B
2 3
Multiplication is not possible

15

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)

7.

Write a C program to find the saddle point of a matrix.

The Process:
A saddle point is a position in the payoff matrix where the maximum of row
minima coincides with the minimum of column maxima. The payoff at the saddle
point is called the value of the game point and is denoted by

Max[row min A(i,j)] = Min[col max A(i,j)]


For a general two-player zero-sum game,

If the two are equal, then write

Where, v is called the value of the game. In this case, there exist optimal
strategies for the first and second players.
A necessary and sufficient condition for a saddle point to exist is the
presence of a payoff matrix element which is both a minimum of its row and a
maximum of its column. A game may have more than one saddle point, but all
must have the same value.
Program:

#include<stdio.h>
#include<conio.h>
void main()
{
int a[5][5],rowmin[5],colmax[5],min,max,i,j,r,c;
clrscr();
printf("Enter the row and column:\n");
scanf("%d%d",&r,&c);
if(r!=c)
{
printf("Row and Column should equal!\n");
16

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


getch();
exit(0);
}
printf("Enter the matrix elements:\n");
for(i=0;i<r;i++)
for(j=0;j<c;j++)
scanf("%d",&a[i][j]);
printf("The matrix elements:\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
//Find the Saddle point
for(i=0;i<r;i++)
{
rowmin[i]=a[i][0];
for(j=0;j<c;j++)
{
if(a[i][j]<rowmin[i])
rowmin[i]=a[i][j];

}
printf("Rowmin= %d\n",rowmin[i]);

}
for(j=0;j<c;j++)
{
colmax[j]=a[0][j];
for(i=0;i<r;i++)
{
if(a[i][j]>colmax[j])
colmax[j]=a[i][j];
}
printf("Colmax=%d\n",colmax[j]);
}
max=rowmin[0];
for(i=0;i<r;i++)
{
if(rowmin[i]>max)
max=rowmin[i];
}
printf("MAX= %d\n",max);
min=colmax[0];
for(j=0;j<r;j++)
{
if(colmax[j]<min)
min=colmax[j];
}
printf("MIN= %d\n",min);
17

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)

if(max==min)
printf("The saddle point exists and the value of the game is
%d",max);
else
printf("There is no saddle point");
getch();

Output:

Enter the row and column:


2 3
Row and Column should equal!
Enter the row and column:
3 3
Enter the matrix elements:
1
2
3
4
5
6
7
8
9
The matrix elements:
1 2 3
4 5 6
7 8 9
The saddle point exists and the value of the game is 7

18

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)

8.

Write a C program to implement a magic square of size n.

The Process:
A magic square is an arrangement of numbers (usually integers) in a square
grid, where the numbers in each row, and in each column, and the numbers in
the forward and backward main diagonals, all add up to the same number. A
magic square has the same number of rows as it has columns, and in
conventional math notation, "n" stands for the number of rows (and columns)
it has. Thus, a magic square always contains n2 numbers, and its size (the
number of rows [and columns] it has) is described as being "of order n".
A magic square that contains the integers from 1 to n 2 is called a normal
magic square. It is possible to construct a normal magic square of any size
except 2 2 (that is, where n = 2), although the solution to a magic square
where n = 1 is trivial, since it consists simply of a single cell containing
the number 1. The smallest nontrivial case, shown below, is a 3 3 grid.

The constant that is the sum of every row, column and diagonal is called the
magic constant or magic sum, M. Every normal magic square has a unique
constant determined only by the value of n, which can be calculated using
this formula:

For example, if n = 3, the formula says M = [3 (3 2 + 1)]/2, which simplifies


to 15. For normal magic squares of order n = 3, 4, 5, 6, 7, and 8, the magic
constants are, respectively: 15, 34, 65, 111, 175, and 260.

Program:

#include<stdio.h>
#include<conio.h>
void main()
19

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


{

int a[5][5],i,j,m,n,pri_diag=0,rowsum,colsum,sec_diag=0,magicSum=0;
clrscr();
printf("Enter the size of matrix:\n");
scanf("%d",&n);
if(n<=2)
{
printf("Magic Square not possible\n");
getch();
exit(0);
}
magicSum=(n*(n*n+1))/2;
printf("Enter the matrix elements:");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf("The matrix is:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
//Calculation for magic square matrix
for(i=0;i<n;i++)
{
rowsum=0,colsum=0;
for(j=0;j<n;j++)
{
rowsum=rowsum+a[i][j];
colsum=colsum+a[j][i];
if(i==j)
pri_diag=pri_diag+a[i][j];
}
printf("\n%d Row sum= %d\n",i+1,rowsum);
printf("\n%d Col sum= %d\n",i+1,colsum);
}
printf("\npri_diag=%d",pri_diag);
//calculation for rev pri_diag
for(i=0,j=n-1;i<n;i++,j--)
sec_diag=sec_diag+a[i][j];
printf("\nSecondary Diagonal is= %d",sec_diag);
printf("\nRequired magic sum is= %d", magicSum);
if(magicSum==rowsum && magicSum==colsum && magicSum==pri_diag &&
magicSum==sec_diag)
printf("\nEntered matrix is Magic Square\n");
else
printf("\nEntered matrix is Not Magic Square\n");
20

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


}

getch();

Output:
Enter the size of matrix:
3
Enter the matrix elements:
2
7
6
9
5
1
4
3
8
The matrix is:
2 7 6
9 5 1
4 3 8
1 Row sum= 15
1 Col sum= 15
2 Row sum= 15
2 Col sum= 15
3 Row sum= 15
3 Col sum= 15
pri_diag=15
Secondary Diagonal is= 15
Required magic sum is= 15
Entered matrix is Magic Square

21

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

3.

Write a Menu driven C program to


a. Accept two numbers n and m
b. Sum of all integers ranging from n to m
c. Sum of all odd integers ranging from n to m
d. Sum of all even integers ranging from n to m
Display an error message if n > m. Create functions for each of the options

C Programming Laboratory (13MCA16)

e.

f.

a.
b.
c.
d.
e.

The Process:

The sum would be from all the integers from 1 to n?


1 + 2 + 3 + +n
An odd number is an integer which is not a multiple of two
{1,3,5,7,9,11,13,15,17,19,21,23,25...}
An even number is an integer which is multiple of two
{2,4,6,8,10,12,14,16,18,20,22,24,26,28. . .}

Program:

#include<stdio.h>
#include<conio.h>
void
void
void
void

accept();
sumofall(int,int);
sumofeven(int,int);
sumofodd(int,int);

int n,m;
void main()
{
int flag=0;
char op;
clrscr();
for(;;)
{
printf("\na.Accept\nb.Sum of all Integer\nc.Sum of all odd\n
d.Sum of even\ne. Exit\n");
printf("Enter your choice:");
fflush(stdin);
op=getchar();
clrscr();
switch(op)
{
case 'a':

22

accept();
flag=1;
break;
case 'b': if(flag==0)
printf("No Inputs!\n");
else
sumofall(n,m);
break;
case 'c': if(flag==0)
printf("No Inputs!\n");
else
sumofeven(n,m);
break;
case 'd': if(flag==0)
printf("No Inputs!\n");
else
sumofodd(n,m);
break;
case 'e': exit(0);
default: printf("Invalid option\n");

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

}
}
void accept()
{

C Programming Laboratory (13MCA16)

9.

Write a Menu Driven C Program to implement the following using recursion


a. Factorial of a number
b. Fibonacci series

The Process:
a. In mathematics, the factorial of a non-negative integer n, denoted by n!,
is the product of all positive integers less than or equal to n.
For example,
The factorial function is
recursively defined by

b. Fibonacci numbers are the numbers fall on the Fibonacci series, which grows
up accord to Fibonacci rule.
The rule is, the present number in the series is the sum of past
number and the number before last. The series starts from 0 & the 2nd term
is 1. Now all other elements are generated using this rule:

Fn = Fn-1 + Fn-2
Example: 0 1 1 2 3 5 8 13 21 34 55 89 ...
Program:

#include<stdio.h>
#include<conio.h>
int fact(int);
int fibo(int);
void main()
{
int n,res,i,f=0;
char op;
clrscr();
printf("Enter the series\n");
scanf("%d", &n);
if(n<0)
{
printf("Invalid Input");
getch();
return;
}
23

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


for(;;)
{
printf("\na. Factorial\nb. Fibonnaci\ne. Exit\n");
printf("Enter the choice:");
fflush(stdin);
op=getchar();
clrscr();
switch(op)
{
case 'a':

}
}

res = fact(n);
printf("The Factorial of %d is: %d",n,res);
break;
case 'b': printf("The Fibonacci Series:\n");
for(i=1;i<=n;i++)
{
printf("%d\t",fibo(f));
f++;
}
break;
case 'e': exit(0);
default:
printf("Invalid Choice!\n");

int fact(int num)


{
if(num==0)
return 1;
else
return (num* fact(num-1));
}
int fibo(int num)
{
if(num==0)
return 0;
else if(num==1)
return 1;
else
return (fibo(num-1) + fibo(num-2));
}
Output:
Enter the series
5
a. Factorial
b. Fibonnaci
e. Exit
Enter the choice:a
The Factorial of 5 is:

120

a.Factorial
24

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


b.Fibonnaci
e.Exit
Enter the choice:e

10. Create a structure Complex Number having real and imaginary part as properties. Write functions to
add and subtract the two complex numbers.

The Process:
Complex a + bi where a and b are real numbers and i is the square root of 1.
These programs calculate the sum of two complex numbers which will be entered
by the user and then printed their sum. User will have to enter the real and
imaginary parts of two complex numbers. Then on our program we will add real
parts and imaginary parts of complex numbers and then we add them and prints
the complex number, i is the symbol.
For example: If user entered two complex numbers as (1 + 2i) and (4 + 6i) then
output of program will be (5+8i).
Program:

#include<stdio.h>
#include<conio.h>
#include<math.h>
struct comp
{
float real;
float img;
};
typedef struct comp complex;
complex add_complex(complex x1, complex x2)
{
complex z;
z.real=x1.real + x2.real;
z.img=x1.img + x2.img;
return z;
}
complex sub_complex(complex x1, complex x2)
{
complex z;
z.real=x1.real - x2.real;
z.img=x1.img - x2.img;
return z;
}
void show(complex z)
{
if(z.img>0)
printf("%5.2f + %5.2fi", z.real,z.img);
else
printf("%5.2f - %5.2fi", z.real,fabs(z.img));
}
void main()
25

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


{

complex x1,x2,z1,z2;
clrscr();
printf("Enter
scanf("%f%f",
printf("Enter
scanf("%f%f",

the value for first complex number\n");


&x1.real,&x1.img);
the value for second complex number\n");
&x2.real,&x2.img);

z1=add_complex(x1,x2);
printf("Sum of two complex numbers:");
show(z1);

z2=sub_complex(x1,x2);
printf("\nSubtract of two complex numbers: ");
show(z2);
getch();

Output:
Enter the value for first complex number
2
3
Enter the value for second complex number
3
2
Sum of two complex numbers: 5.00 + 5.00i
Subtract of two complex numbers: -1.00 + 1.00i

26

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


11. Define a structure called student having the properties of student_id, student name and branch of the
student with a sub structure of marks of 3 subjects. Write a Menu Driven C Program to
a. Add new student detail
b. Delete a student detail
c. Display all student details
d. Display the name of the student with the best mark
e. Display the name of the student with the worst mark
f. Display the average marks scored by the students

Program:

#include<stdio.h>
#include<conio.h>
struct student
{
int id;
char name[15];
char branch[4];
int total;
struct marks
{
int m1;
int m2;
int m3;
}mar;
}std[10],temp;
void main()
{
int i,j,n,ch,key,flag=0,sum=0;
float avg=0.0;
clrscr();
printf("Enter the number of student:\n");
scanf("%d",&n);
for(;;)
{
printf("1.Add new Student\n2.Delete a Student\n");
printf("3.Display the Student\n4.Best & Worst Marks list");
printf("\n5.Average Marks list\n6.Exit\n");
printf("Enter your choice: ");
scanf("%d",&ch);
switch(ch)
{
case 1:

27

for(i=0;i<n;i++)
{
printf("Enter the student id: ");
scanf("%d",&std[i].id);
printf("Enter the student name: ");
fflush(stdin);
gets(std[i].name);
printf("Enter the student branch");
fflush(stdin);
gets(std[i].branch);
printf("Enter the three subject
marks:\n");
scanf("%d%d%d",&std[i].mar.m1,

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


&std[i].mar.m2,&std[i].mar.m3);
std[i].total= std[i].mar.m1 +
std[i].mar.m2 + std[i].mar.m3;
sum=sum+std[i].total;

}
break;
case 2:
if(n==0)
{
printf("No Records\n");
getch();
break;
}
else
{
flag=0;
printf("Enter the id for deleting the
record: ");
scanf("%d",&key);
for(i=0;i<n;i++)
{
if(std[i].id==key)
{
sum=sum-std[i].total;
for(j=i;j<n-1;j++)
{
std[j]=std[j+1];
}
n--;
flag=1;
break;
}
}

if(flag==0)
printf("The entered ID %d is Not
found!\n",key);
else
printf("The Record %d is deleted\n
", key);
}
break;
case 3:
if(n==0)
{
printf("No Records\n");
getch();
break;
}
else
{
printf("The student details are:\n");
printf("---------------------------------------------------------\n");
printf("Std_Id\tStd_Name\tStd_Branch\t
Std_Marks\t Total\n");
printf("---------------------------------------------------------\n");
28

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


for(i=0;i<n;i++)
printf("%d\t%s\t\t%s\t\t%d%d\t%d\n",
std[i].id,std[i].name,std[i].branch,
std[i].mar.m1,std[i].mar.m2,
std[i].mar.m3,std[i].total);

}
break;
case 4: //For sort the records based on struc elements.
if(n==0)
{
printf("No Records\n");
getch();
break;
}
else
{
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(std[j].total>std[j+1].total)
{
temp=std[j];
std[j]=std[j+1];
std[j+1]=temp;
}
}
}
printf("The Best Student: %s\n The Worst
Student: %s\n",std[n-1].name,std[0].name);
}
break;

}
}

case 5: if(n==0)
{
printf("No Records\n");
getch();
break;
}
else
{
avg=(float)sum/n;
printf("The average marks scored by the
student is: %f\n",avg);
}
break;
case 6:exit(0);
default:
printf("Wrong Choice!!");
break;

Output:
Enter the number of student:
2
1.Add new Student
29

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


2.Delete a Student
3.Display the Student
4.Best & Worst Marks list
5.Average Marks list
6.Exit
Enter your choice: 1
Enter the student id: 1
Enter the student name: kavitha
Enter the student branch:mca
Enter the three subject marks:
41
42
43
Enter the student id: 2
Enter the student name: sunitha
Enter the student branch:mba
Enter the three subject marks:
42
44
42
1.Add new Student
2.Delete a Student
3.Display the Student
4.Best & Worst Marks list
5.Average Marks list
6.Exit
Enter your choice: 3
The student details are:
---------------------------------------------------------Std_Id Std_Name
Std_Branch
Std_Marks
Total
---------------------------------------------------------1
kavitha
mca
41 42 43
126
2
sunitha
mba
42 44 42
128
1.Add new Student
2.Delete a Student
3.Display the Student
4.Best & Worst Marks list
5.Average Marks list
6.Exit
Enter your choice:6

12. a) Write a C Program to remove all white spaces and newline characters from a file.

The Process:

What is whitespace?
..
..
..

30

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


Program:

#include<stdio.h>
#include<conio.h>
void main()
{
FILE *fp1,*fp2;
char ch,fname[100];
clrscr();
printf("Enter the filename:\n");
gets(fname);
fp1=fopen(fname,"r");
if(fp1==NULL)
{
printf("\nError: Unable to open file %s\n",fname);
getch();
exit(0);
}
fp2=fopen("res.txt","w+");
while((ch=fgetc(fp1))!=EOF)
{
if(ch!=' ' && ch!='\n' && ch!='\t')
{
fputc(ch,fp2);
}
}
printf("All white spaces and newline characters are removed
successfully:\n");
fclose(fp1);
fclose(fp2);
getch();
}
Output:
Enter the filename:
pgm1a.c
Error: Unable to open file pgm1a.c
Enter the filename:
Hello.c
All white spaces and newline characters are removed successfully:

13. b) Find a given word in a file if it exists and also show the location of that word in a file.

The Process:

31

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


Program:

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
void main()
{
FILE *fp;
char fname[15],str[10],temp[10],temp1[10];
int flag=0,pos=0,len,i,j=0;
clrscr();
printf("Enter the File name:");
gets(fname);
fp=fopen(fname,"r");
if(fp == NULL)
{
printf("\nSORRY, The source file does not exist");
getch();
exit(0);
}
printf("Enter the word for search:\n");
gets(str);
while(!feof(fp))
{
j=0;
fscanf(fp,"%s",temp);
puts(temp);
len=strlen(temp);
pos=pos+(len+1);
for(i=0;i<strlen(temp);i++)
{
if(ispunct(temp[i]))break;
else
temp1[j]=temp[i];
j++;
}
temp1[j]='\0';

if(strcmp(str,temp1)==0)
{
flag=1;
break;
}

if(flag==1)
printf("\nThe %s Word found at %d position\n",temp1,pos-len);
else
printf("Word Not found\n");
fclose(fp);
32

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


}

getch();

Output:

14. Copy one file content to another file without using inbuilt function

The Process:
Program:

#include<stdio.h>
#include<conio.h>
void main()
33

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

C Programming Laboratory (13MCA16)


{

FILE *fp1,*fp2;
char srcf[15],destf[15],ch;
clrscr();
printf("\nEnter the filename:");
gets(srcf);
fp1=fopen(srcf,"r");
if(fp1==NULL)
{
printf("ERROR: Unable to open file\n");
getch();
exit(0);
}
printf("Source file %s exists",srcf);
printf("\nEnter the filename:");
gets(destf);
fp2=fopen(destf,"w");
while((ch=getc(fp1))!=EOF)
putc(ch,fp2);
printf("The %s file is copied successfully to %s",srcf,destf);
getch();

}
Output:
Enter the filename:hello.c
Source file hello.c exists
Enter the filename:res.txt
The hello.c file is copied successfully to res.txt

34

Prepared by Prof. Suma M.G., Asst. Professor | RNSIT, Bangalore

You might also like