C Programs
C Programs
#include<stdio.h>
#define PI 3.1416
void main()
{
float r, area;
clrsce();
area = PI * r * r;
getch();
#include<stdio.h>
#include<math.h>
void main()
{
float a, b, c, s, area;
clrsce();
s=(a+b+c)/2;
getch();
1
C Programs By VINOD
#include<stdio.h>
#include<conio.h>
void main()
{
int gs,bs,da,ta;
clrscr();
printf("enter basic salary: ");
scanf("%d",&bs);
=(10*bs)/100;
ta=(12*bs)/100;
gs=bs+da+ta;
printf("gross salary=%d",gs);
getch();
}
void main()
{
int n,i,fact=1;
clrscr();
printf("Enter any no: ");
scanf("%d",&n);
for(i=n;i>=1;i--)
{
fact=fact*i;
}
printf("Factorial=%d",fact);
getch();
}
#include<stdio.h>
#include<conio.h>
void main()
{
int n,i,sum=0;
clrscr();
2
C Programs By VINOD
#include <stdio.h>
int main(void)
{
printf("The value of 1<2 is %d\n", (1<2));
printf("The value of 2<1 is %d\n", (2<1));
}
#include <stdio.h>
int main(void) {
int n; /* The number of fibonacci numbers we will print */
int i; /* The index of fibonacci number to be printed next */
int current; /* The value of the (i)th fibonacci number */
int next; /* The value of the (i+1)th fibonacci number */
int twoaway; /* The value of the (i+2)th fibonacci number */
next = twoaway;
}
}
}
I Fibonacci(I)
=====================
1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
*/
#include <stdio.h>
int main()
{
int number1 , number2;
printf("Enter the number1 number to compare.\n");
scanf("%d",&number1);
printf("Enter the number2 number to compare.\n");
scanf("%d",&number2);
printf("number1 > number2 has the value %d\n", number1 > number2);
printf("number1 < number2 has the value %d\n", number1 < number2);
printf("number1 == number2 has the value %d\n", number1 == number2);
return 0;
}
Convert MB to KB
#include <stdio.h>
int main(void)
{
double megabytes , kilobytes;
4
C Programs By VINOD
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main()
{
clrscr();
int d,m,y,year,month,day,i,n;
printf("Enter how many times you want to run this program : ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("Enter the date : ");
scanf("%d%d%d",&d,&m,&y);
if( d>31 || m>12 || (y<1900 || y>=2000) )
{
printf("INVALID INPUT");
getch();
exit(0);
}
year = y-1900;
year = year/4;
year = year+y-1900;
switch(m)
{
case 1:
case 10:
month = 1;
break;
case 2:
case 3:
case 11:
5
C Programs By VINOD
month = 4;
break;
case 7:
case 4:
month = 0;
break;
case 5:
month = 2;
break;
case 6:
month = 5;
break;
case 8:
month = 3;
break;
case 9:
case 12:
month = 6;
break;
}
year = year+month;
year = year+d;
day = year%7;
switch(day)
{
case 0:
printf("Day is SATURDAY");
break;
case 1:
printf("Day is SUNDAY");
break;
case 2:
printf("Day is MONDAY");
break;
case 3:
printf("Day is TUESDAY");
break;
case 4:
printf("Day is WEDNESDAY");
break;
case 5:
printf("Day is THURSDAY");
break;
case 6:
printf("Day is FRIDAY");
break;
6
C Programs By VINOD
}
}
getch();
return 0;
}
#include<stdio.h>
main()
{
int a,b,c,d,e;
clrscr();
printf("Input a number (between 1-3000):");
scanf("%d",&e);
while (e==0||e>3000)
{
printf ("ERROR: Invalid Input!");
printf ("Enter the number again:");
scanf ("%d",&e);
}
if (e>3000)
printf("Invalid");
a = (e/1000)*1000;
b = ((e/100)%10)*100;
c = ((e/10)%10)*10;
d = ((e/1)%10)*1;
if (a ==1000)
printf("M");
else if (a ==2000)
printf("MM");
else if (a ==3000)
printf("MMM");
if (b == 100)
printf("C");
else if (b == 200)
printf("CC");
else if (b == 300)
printf("CCC");
else if (b == 400)
printf("CD");
else if (b ==500)
printf("D");
7
C Programs By VINOD
else if (b == 600)
printf("DC");
else if (b == 700)
printf("DCC");
else if (b ==800)
printf("DCCC");
else if (b == 900)
printf("CM");
if (c == 10)
printf("X");
else if (c == 20)
printf("XX");
else if (c == 30)
printf("XXX");
else if (c == 40)
printf("XL");
else if (c ==50)
printf("L");
else if (c == 60)
printf("LX");
else if (c == 70)
printf("LXX");
else if (c ==80)
printf("LXXX");
else if (c == 90)
printf("XC");
if (d == 1)
printf("I");
else if (d == 2)
printf("II");
else if (d == 3)
printf("III");
else if (d == 4)
printf("IV");
else if (d ==5)
printf("V");
else if (d == 6)
printf("VI");
else if (d == 7)
printf("VII");
else if (d ==8)
printf("VIII");
else if (d == 9)
8
C Programs By VINOD
printf("IX");
getch();
}
Factorial series-e^x
#include <stdio.h>
#include <conio.h>
#include<math.h>
long int factorial(int n);
void main()
{
int x,i;
float s,r;
char c;
clrscr();
printf("You have this series:-1+x/1! + x^2/2! + x^3/3! + x^4/4!..x^x/x!");
printf("To which term you want its sum? ");
scanf("%d",&x);
s=0;
for (i=1;i<=x;i++)
{
s=s+((float)pow(x,i)/(float)factorial(i));
}
printf("The sum of %d terms is %f",x,1+s);
fflush(stdin);
getch();
}
#include<stdio.h>
#include<conio.h>
main()
{
float a,b,e=0.00001,p,k;
clrscr();
9
C Programs By VINOD
do {
printf(" PROGRAM TO FIND SQUARE ROOT OF A NUMBER");
printf("ENTER A NUMBER(-1 to Quit) :");
scanf("%f",&k);
a=k;
p=a*a;
while(p-k>=e)
{
b=(a+(k/a))/2;
a=b;
p=a*a;
}
printf("SQUARE ROOT IS = %f",a);
getch();
clrscr();
}while(k!=-1);
getch();
}
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define PI 3.14159
char ch;
main()
{
clrscr();
intro();
getch();
clrscr();
do
{
ch=menu();
switch(ch)
10
C Programs By VINOD
{
case 'a':
case 'A':
clrscr();
square();
getch();
break;
case 'b':
case 'B':
clrscr();
rect();
getch();
break;
case 'c':
case 'C':
clrscr();
circl();
getch();
break;
case 'd':
case 'D':
clrscr();
tri();
getch();
break;
case 'e':
case 'E':
clrscr();
rom();
getch();
break;
case 'f':
case 'F':
clrscr();
para();
getch();
break;
case 'g':
case 'G':
clrscr();
tra();
getch();
break;
case 'h':
case 'H':
11
C Programs By VINOD
clrscr();
qua();
getch();
break;
case 'i':
case 'I':
clrscr();
semicir();
getch();
break;
case 'j':
case 'J':
clrscr();
msector();
getch();
break;
case 'k':
case 'K':
clrscr();
sphere();
getch();
break;
case 'l':
case 'L':
clrscr();
cone();
getch();
break;
case 'm':
case 'M':
clrscr();
cyll();
getch();
break;
case 'n':
case 'N':
clrscr();
cube();
getch();
break;
case 'o':
case 'O':
clrscr();
cuboid();
12
C Programs By VINOD
getch();
break;
case 'p':
case 'P':
clrscr();
hemisphe();
getch();
break;
case 'q':
case 'Q':
exit(1);
}
} while(ch!='Q'||ch!='q');
getch();
}
intro()
{
int i;
clrscr();
printf("");
textcolor(2);
cprintf("#######################################################################
#########");
textcolor(4);
printf("PROGRAM TO CALCULATE AREAS , VOLUMES ,
CIRCUMFERENCES ");
printf("=====================================================");
printf("OF VARIOUS GEOMETRIC SHAPES");
printf("===========================");
textcolor(2);
cprintf("#################################################################
###############");
getch();
}
menu()
{
clrscr();
textcolor(7);
printf(" MENU
Two Dimensional Shapes.
13
C Programs By VINOD
-----------------------
A.SQUARE
B.RECTANGLE
C.CIRCLE
D.TRIANGLE
E.RHOMBUS
F.PARALLELOGRAM
G.TRAPEZIUM
H.QUADRILATERAL.
I.SEMICERCLE
J.SECTOR
");
printf(" Three Dimensional Shapes.
-------------------------
K.SPHERE
L.CONE
M.CYLLINDER
N.CUBE
O.CUBOID
P.HEMISPHERE
Q.QUIT
Enter Your Choice :");
scanf("%c",&ch);
return(ch);
}
square()
{
float s,a,p;int i,j;
printf(" Enter side of square:");
scanf("%f",&s);
a=s*s;
p=4*s;
printf("
14
C Programs By VINOD
}
rom()
{
float s,d1,d2,a,p;
printf("Enter side and diagonals of a rhombus:Side:");
scanf("%f",&s);
printf("Diagonal :");scanf("%f",&d1);
printf("Diagonal :");scanf("%f",&d2);
a=0.5*d1*d2;
p=4*s;
printf("Perimeter of rhombus :%.3f units",p);
printf("Area of rhombus :%.3f sq.units",a);
}
circl()
{
float r,a,p;
printf("Enter radius of circle:");
scanf("%f",&r);
a=PI * r * r;
p=2 * PI * r;
printf("Circumference of circle : %.3f units",p);
printf("Area of circle : %.3f sq.units",a);
}
para()
{
float a,p,base,h,l,b;
printf("Enter height,length,breadth of parallalogram :" );
printf("Height :"); scanf("%f",&h);
printf("Base or Length :"); scanf("%f",&l);
printf("Breadth :"); scanf("%f",&b);
base=l;
a=base*h;
p=2 * ( l + b );
printf("Perimeter of parallalogram :%.3f units",p);
printf("Area of parallogram :%.3f sq.units",a);
tra()
{
float a,b,d,are;
printf("Enter height and lengths of two parallel sides:Height :");
scanf("%f",&d);
printf("Side:"); scanf("%f",&a);
printf("Side:"); scanf("%f",&b);
16
C Programs By VINOD
are=0.5 * d * (a+b);
printf("Area of trapezium : %.3f sq.units",are);
}
qua()
{
float a,b,area,d;
printf("Enter diagonal and perpendicular distances from opposite vertices:");
printf("Diagonal :"); scanf("%f",&d);
printf("Distance :"); scanf("%f",&a);
printf("Distance :");scanf("%f",&b);
area= 0.5 * d * (a + b);
printf("Area of quadrilateral : %.3f sq.units", area);
}
semicir()
{
float a,p,r;
printf("Enter radius of semicircle:");
scanf("%f",&r);
a=0.5* PI * r * r;
p= (PI * r ) + (2 * r);
printf(“Circumference of semicircle : %.3f units",p);
printf("Area of semicircle : %.3f sq.units",a);
}
msector()
{
float x,r,temp,a,p;
printf("Enter radius and angle of sector:");
printf("Radius :");
scanf("%f",&r);
printf("Angle(in degrees) :");
scanf("%f",&x);
temp= x/360;
a= temp * (PI * r * r);
p= temp * (2 * PI * r);
printf("Circumference of sector : %.3f units",p);
printf("Area of sector : %.3f sq.units",a);
}
sphere()
{
float lsa,tsa,v,r;
printf("Enter radius of sphere :");
scanf("%f",&r);
17
C Programs By VINOD
tsa=4*PI*r*r;
v=(4.0/3.0)*PI*r*r*r;
printf("Total surface area of sphere :%.3f sq.units",tsa);
printf("Volume of sphere :%.3f cu.units",v);
}
cone()
{
float h,r,s ,v,tsa,lsa;
printf("Enter base radius ,height, slant height of cone :");
printf("Radius :"); scanf("%f",&r);
printf("Height :"); scanf("%f",&h);
printf("Slant height :"); scanf("%f",&s);
tsa=PI * r *(s+r);
lsa=PI * r * s;
v=(PI * r * r * h)/3;
printf("Total surface area of cone :%.3f sq.units",tsa);
printf("Lateral surface area of cone :%.3f sq.units",lsa);
printf("Volume of cone :%.3f cu.units",v);
}
cyll()
{
float lsa,tsa,v,r,h;
printf("Enter height and radius of cyllinder");
printf("Height :"); scanf("%f",&h);
printf("Radius :"); scanf("%f",&r);
lsa=2*PI*r*h;
tsa=2*PI*r*(h+r);
v=PI*r*r*h;
printf("Total surface area of cyllinder :%.3f sq.units",tsa);
printf("Curved surface area of cyllinder :%.3f sq.units",lsa);
printf("Volume of cyllinder :%.3f cu.units",v);
}
cube()
{
float lsa,tsa,v,s,d;
printf("Enter side of cube :");
scanf("%f",&s);
d=s*sqrt(3);
lsa=4 * s * s;
tsa=6 * s * s;
v= s * s * s;
printf("Diagonal of cube :%.3f units",d);
printf("Total surface area of cube :%.3f sq.units",tsa);
printf("Lateral surface area of cube :%.3f sq.units",lsa);
printf("Volume of cube :%.3f cu.units",v);
}
18
C Programs By VINOD
cuboid()
{
float lsa,tsa,v,l,b,d,h;
printf("Enter length,breadth,height of cuboid :");
printf("Length :"); scanf("%f",&l);
printf("Breadth :"); scanf("%f",&b);
printf("Height :"); scanf("%f",&h);
d=sqrt(l*l + b*b + h*h );
lsa =2 * h *( l+b );
tsa = lsa + 2 * l * b;
v=l*b*h;
printf("Diagonal of cuboid :%.3f units",d);
printf("Total surface area of cuboid :%.3f sq.units",tsa);
printf("Lateral surface area of cuboid :%.3f sq.units",lsa);
printf("Volume of cuboid :%.3f cu.units",v);
}
hemisphe()
{
float lsa,tsa,v,r;
printf("Enter radius of hemisphere :");
scanf("%f",&r);
tsa=3*PI*r*r;
lsa=2*PI*r*r;
v=(2.0/3.0)*PI*r*r*r;
printf("Total surface area of hemisphere :%.3f sq.units",tsa);
printf("Lateral surface area of hemisphere :%.3f sq.units",lsa);
printf("Volume of hemisphere :%.3f cu.units",v);
}
if(a=10)
printf("This Works\n");
if(-5)
printf("This Works\n");
19
C Programs By VINOD
getch();
}
clrscr();
printf("Enter a Number..\n");
scanf("%d", &a);
if(a%2 == 0)
printf("%d is even\n");
else
printf("%d is odd\n");
getch();
}
20
C Programs By VINOD
clrscr();
if(avg>=85.0)
printf("Distinction\n");
else
printf("You Fail\n");
getch();
}
clrscr();
printf("Enter 3 Numbers..\n");
scanf("%d%d%d", &a,&b,&c);
if(a > b)
{
21
C Programs By VINOD
if(a > c)
printf("%d\n", a);
else
printf("%d\n",c);
}
else
{
if(b > c)
printf("%d\n", b);
else
printf("%d\n",c);
}
getch();
}
#include <stdio.h>
# include <conio.h>
#define NULL 0
FILE *fpt;
void main()
{
int c1=0,c2=0,c3=0,c4=0,c5=0;
char c,name[20],z;
clrscr();
printf("Enter the name of file to be checked :- ");
gets(name);
fpt=fopen(name,"r");
if (fpt==NULL)
printf("ERROR - can/'t open file %s",name);
else
{
while ((c=getc(fpt))!=EOF)
{
if (c=='(')
c1=c1+1;
if (c==')')
c1=c1-1;
if (c=='[')
c2=c2+1;
if (c==']')
c2=c2-1;
if (c=='')
{
22
C Programs By VINOD
if (c1!=0)
printf("ERROR - Unbalanced parenthesis ()");
if (c2!=0)
printf("ERROR - Unbalanced brackets []");
}
if (c=='{')
c3=c3+1;
if (c=='}')
c3=c3-1;
if ((int)c==39)
{
if (c1!=0)
{
if (c4==0)
c4=c4+1;
else
c4=c4-1;
}
else
printf("ERROR - Unbalanced ' ");
}
if ((int)c==34)
{
if (c1!=0)
{
if (c5==0)
c5=c5+1;
else
c5=c5-1;
}
else
{
z=(char)34;
printf("ERROR - Unbalanced %c ",z);
}
}
}
}
if (c1!=0)
printf("ERROR - Unbalanced parenthesis ()");
if (c2!=0)
printf("ERROR - Unbalanced brackets []");
if (c3!=0)
printf("ERROR - Unbalanced braces {}");
if (c4!=0)
23
C Programs By VINOD
#include <stdio.h>
#include <conio.h>
void main()
{
char c,choice;
int nc=0,nb=0,nw=1,nl=1,count,i/*,flag=1*/;
clrscr();
scanf("%c",&choice);
if (c==EOF||c==' '||c=='')
;
else
nc=nc+1;
case 2:
if (c==' ')
{
nc=nc+1;
nb=nb+1;
while((c=getchar())==' ')
{
nb=nb+1;
nc=nc+1;
24
C Programs By VINOD
if (c!=' ')
{
nc=nc+1;
nw=nw+1;
}
}
case 3:
if(c=='')
{
nc=nc+1;
nb=nb+1;
nw=nw+1;
nl=nl+1;
}
}
}
printf("no. of characters is %d",nc);
printf("no. of blanks is %d",nb);
printf("no. of words is %d",nw);
printf("no. of lines is %d",nl);
fflush(stdin);
printf ("Do you want to continue?(y/n):- ");
scanf("%c",&choice);
getch();
}
void sort(void);
int c,a[20],l;
void main()
{
clrscr();
printf("Enter no. of elements in the list:- ");
scanf ("%d",&l);
printf("CHOICE:-");
printf("(1) Sort in ascending order.");
printf("(2) Sort in descending order.");
printf("CHOICE:- ");
scanf("%d",&c);
if (c!=1 && c!=2)
25
C Programs By VINOD
{
printf("ERROR");
getch();
exit(0);
}
sort();
getch();
}
void sort(void)
{
int n,i,j,temp=0,min,k;
for (i=1;i<=l;i++)
{
printf("Enter no.:- ");
scanf("%d",&a[i]);
}
for (i=1;i<=(l-1);i++)
{
min=a[i];
k=i;
for (j=(i+1);j<=l;j++)
{
if (a[j]<min)
{
min=a[j];
k=j;
}
}
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
switch(c)
{
case 1:
printf("Elements in ascending order are:-");
for (i=1;i<=l;i++)
printf("%d",a[i]);
break;
case 2:
printf("Elements in descending order are:-");
for (i=l;i>=1;i--)
printf("%d",a[i]);
26
C Programs By VINOD
break;
default:
printf("ERROR");
}
return;
}
/*Printint a double */
#include<stdio.h>
#include<conio.h>
void main(void)
{
int i,j,k,l,b,n;
clrscr();
printf("Enter the value of N:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n");
for(l=0;l<i;l++)
printf("\n");
for(j=i+1;j<=n;j++)
printf("%d",j);
for(k=n-1;k>i;k--)
printf("%d",k);
}
b=n-1;
for(i=0;i<n-1;i++)
{
printf("\n");
for(l=n-2;l>i;l--)
printf("\n");
for(j=b;j<=n;j++)
printf("%d",j);
for(k=n-1;k>=b;k--)
printf("%d",k);
b--;
}
getch();
}
#include<stdio.h>
#include<conio.h>
#include<string.h>
void bd();
void db();
void doc();
void dh();
void od();
void ob();
void bo();
void bh();
void hb();
void hd();
void oh();
void ho();
void main()
{
int n;
char c;
begin:
clrscr();
printf(" ****MAIN MENU****");
printf("Enter your choise.(1-12)");
printf("1. Binary to Decimal.");
printf("2. Decimal to Binary.");
printf("3. Decimal to Octal.");
printf("4. Decimal to Hexadecimal.");
printf("5. Octal to Decimal.");
printf("6. Octal to Binary.");
printf("7. Binary to Octal.");
printf("8. Binary to Hexadecimal.");
printf("9. Hexadecimal to Binary.");
printf("10. Hexadecimal to Decimal.");
printf("11. Octal to Hexadecimal.");
printf("12. Hexadecimal to Octal.");
scanf("%d",&n);
if(n<1 || n>12)
printf("Invalid Choise");
if(n==1)
bd();
else if(n==2)
28
C Programs By VINOD
db();
else if(n==3)
doc();
else if(n==4)
{
long a;
clrscr();
printf("Conversion from Decimal to Hexadecimal");
printf("Enter the decimal number.");
scanf("%ld",&a);
dh(a);
}
else if(n==5)
od();
else if(n==6)
ob();
else if(n==7)
bo();
else if(n==8)
bh();
else if(n==9)
hb();
else if(n==10)
hd();
else if(n==11)
{
unsigned long n,i=0,a,p=1,t=0;
clrscr();
printf("Conversion from Octal to Hexadecimal.");
printf("Enter a Octal number");
scanf("%ld",&n);
i=0;
while(n!=0)
{
a=n%10;
if(a>7)
t=1;
n=n/10;
i=i+a*p;
p=p*8;
}
if(t==0)
{
printf("Hexadecimal eq=");
oh(i);
}
29
C Programs By VINOD
else if(t==1)
printf("Numbert entered is not octal.");
}
else if(n==12)
ho();
printf("Do you Wish to continue(Y/N)");
scanf("%s",&c);
c=toupper(c);
if(c=='Y')
goto begin;
getch();
}
void bd()
{
int n,b=0,a[6],i=0,t=0;
clrscr();
printf("Conversion from Binary to Decimal");
printf("Enter Binary Number");
scanf("%d",&n);
while(n!=0)
{
a[i]=n%10;
n=n/10;
if(a[i]!=1 && a[i]!=0)
t=1;
i++;
}
a[i]=2;
n=1;
for(i=0;a[i]!=2;i++)
{
b=b+a[i]*n;
n=n*2;
}
if(t==0)
printf("Decimal Equivalent=%d",b);
else if(t==1)
printf("Entered number is not binary.");
void db()
{
int dec,bin,n,i=0,a[10];
clrscr();
30
C Programs By VINOD
void doc()
{
int n,i,a[10];
clrscr();
printf("Conversion from Decimal to Octal");
printf("Enter a Decimal number");
scanf("%d",&n);
i=0;
printf("Octal equavalent of %d is ",n);
while(n!=0)
{
a[i]=n%8;
n=n/8;
i++;
}
i--;
for(;i>=0;i--)
printf("%d",a[i]);
}
void dh(long n)
{
long i;
if(n>0)
{
i=n%16;
n=n/16;
dh(n);
if(i>=10)
{
switch(i)
{
case 10:
31
C Programs By VINOD
printf("A");
break;
case 11:
printf("B");
break;
case 12:
printf("C");
break;
case 13:
printf("D");
break;
case 14:
printf("E");
break;
case 15:
printf("F");
break;
}
}
else
printf("%ld",i);
}
}
void od()
{
unsigned long n,i=0,a,p=1,t=0;
clrscr();
printf("Conversion from Octal to Decimal");
printf("Enter a Octal number");
scanf("%ld",&n);
i=0;
printf("Decimal equavalent of %ld",n);
while(n!=0)
{
a=n%10;
if(a>7)
t=1;
n=n/10;
i=i+a*p;
p=p*8;
}
if(t==0)
printf("= %ld",i);
else if(t==1)
printf(" can't be calculated because it is not an Octal Number.");
32
C Programs By VINOD
void ob()
{
int n,a[6],i=0,t=0;
clrscr();
printf("Convertion from Octal to Binary.");
printf("Enter an Octal Number.");
scanf("%d",&n);
while(n!=0)
{
a[i]=n%10;
n=n/10;
if(a[i]>7)
t=1;
i++;
}
i--;
if(t==0)
for(;i>=0;i--)
{
switch(a[i])
{
case 0:
printf("000");
break;
case 1:
printf("001");
break;
case 2:
printf("010");
break;
case 3:
printf("011");
break;
case 4:
printf("100");
break;
case 5:
printf("101");
break;
case 6:
printf("110");
break;
case 7:
printf("111");
33
C Programs By VINOD
break;
}
}
if(t==1)
printf("Not a Octal number");
}
void bo()
{
int i=0,a[5],t=0;
long int n;
clrscr();
printf("Convertion From Binary to Octal");
printf("Enter a Binary number");
scanf("%ld",&n);
while(n!=0)
{
a[i]=n%1000;
n=n/1000;
if(a[i]>111)
t=1;
i++;
}
i--;
if(t==0)
for(;i>=0;i--)
{
switch(a[i])
{
case 0:
printf("0");
break;
case 1:
printf("1");
break;
case 10:
printf("2");
break;
case 11:
printf("3");
break;
case 100:
printf("4");
break;
case 101:
printf("5");
34
C Programs By VINOD
break;
case 110:
printf("6");
break;
case 111:
printf("7");
break;
default:
printf("Entered number is not binary.Printed value is notcorrect.");
break;
}
}
if(t==1)
printf("Number is not Binary");
}
void bh()
{
int i=0,a[5],t=0;
long int n;
clrscr();
printf("Convertion from Binary to Hexadecimal");
printf("Enter a Binary number");
scanf("%ld",&n);
while(n!=0)
{
a[i]=n%10000;
n=n/10000;
if(a[i]>1111)
t=1;
i++;
}
i--;
if(t==0)
for(;i>=0;i--)
{
switch(a[i])
{
case 0:
printf("0");
break;
case 1:
printf("1");
break;
case 10:
printf("2");
35
C Programs By VINOD
break;
case 11:
printf("3");
break;
case 100:
printf("4");
break;
case 101:
printf("5");
break;
case 110:
printf("6");
break;
case 111:
printf("7");
break;
case 1000:
printf("8");
break;
case 1001:
printf("9");
break;
case 1010:
printf("A");
break;
case 1011:
printf("B");
break;
case 1100:
printf("C");
break;
case 1101:
printf("D");
break;
case 1110:
printf("E");
break;
case 1111:
printf("F");
break;
default:
printf("Entered number is not binary.Printed value is notcorrect.");
break;
}
}
if(t==1)
36
C Programs By VINOD
void hb()
{
int i;
char s[20];
clrscr();
printf("Convertion from Hexadecimal to Binary");
printf("1001");
break;
case 'a':
case 'A':
printf("1010");
break;
case 'b':
case 'B':
printf("1011");
break;
case 'c':
case 'C':
printf("1100");
break;
case 'd':
case 'D':
printf("1101");
break;
case 'e':
case 'E':
printf("1110");
break;
case 'f':
case 'F':
printf("1111");
break;
default:
printf("Entered number is not Hexadecimal.Printed value is notcorrect.");
break;
}
}
}
void hd()
{
int i,a[20];
unsigned long int h=0,m=1;
char s[20];
clrscr();
printf("Convertion from Hexadecimal to Decimal");
printf("Enter a Hexadecimal number");
scanf("%s",s);
printf("Decimal Equivalent=");
for(i=0;s[i]!=NULL;i++)
{
switch(s[i])
38
C Programs By VINOD
{
case '0':
a[i]=0;
break;
case '1':
a[i]=1;
break;
case '2':
a[i]=2;
break;
case '3':
a[i]=3;
break;
case '4':
a[i]=4;
break;
case '5':
a[i]=5;
break;
case '6':
a[i]=6;
break;
case '7':
a[i]=7;
break;
case '8':
a[i]=8;
break;
case '9':
a[i]=9;
break;
case 'a':
case 'A':
a[i]=10;
break;
case 'b':
case 'B':
a[i]=11;
break;
case 'c':
case 'C':
a[i]=12;
break;
case 'd':
case 'D':
a[i]=13;
39
C Programs By VINOD
break;
case 'e':
case 'E':
a[i]=14;
break;
case 'f':
case 'F':
a[i]=15;
break;
default:
printf("Entered number is not Hexadecimal.Printed value is notcorrect.");
break;
}
}
i--;
for(;i>=0;i--)
{
h=h+a[i]*m;
m=m*16;
}
printf("%ld ",h);
}
void oh(long n)
{
long i;
if(n>0)
{
i=n%16;
n=n/16;
oh(n);
if(i>=10)
{
switch(i)
{
case 10:
printf("A");
break;
case 11:
printf("B");
break;
case 12:
printf("C");
break;
case 13:
printf("D");
40
C Programs By VINOD
break;
case 14:
printf("E");
break;
case 15:
printf("F");
break;
}
}
else
printf("%ld",i);
}
}
void ho()
{
int i,a[20];
unsigned long int h=0,m=1;
char s[20];
clrscr();
printf("Convertion from Hexadecimal to Octal");
printf("Enter a Hexadecimal number");
scanf("%s",s);
/* Converting hex to dec first*/
for(i=0;s[i]!=NULL;i++)
{
switch(s[i])
{
case '0':
a[i]=0;
break;
case '1':
a[i]=1;
break;
case '2':
a[i]=2;
break;
case '3':
a[i]=3;
break;
case '4':
a[i]=4;
break;
case '5':
a[i]=5;
break;
41
C Programs By VINOD
case '6':
a[i]=6;
break;
case '7':
a[i]=7;
break;
case '8':
a[i]=8;
break;
case '9':
a[i]=9;
break;
case 'a':
case 'A':
a[i]=10;
break;
case 'b':
case 'B':
a[i]=11;
break;
case 'c':
case 'C':
a[i]=12;
break;
case 'd':
case 'D':
a[i]=13;
break;
case 'e':
case 'E':
a[i]=14;
break;
case 'f':
case 'F':
a[i]=15;
break;
default:
printf("Entered number is not Hexadecimal.Printed value is notcorrect.");
break;
}
}
i--;
for(;i>=0;i--)
{
h=h+a[i]*m;
m=m*16;
42
C Programs By VINOD
}
/* Now convering from decimal to octal (h)*/
i=0;
printf("Octal equavalent=");
while(h!=0)
{
a[i]=h%8;
h=h/8;
i++;
}
i--;
for(;i>=0;i--)
printf("%d",a[i]);
}
#include <stdio.h>
void inputoutput ()
{
int comp,ans;
clrscr ();
printf ("choose please: 1=perimeter,2=area,3=volume] ?: ");
scanf ("%d",&comp);
if (comp==1)
{
int le, wi;
printf ("Enter the length: ");
scanf ("%d",&le);
printf ("Enter the width: ");
scanf ("%d",&wi);
printf ("P=%d",perimeter(le,wi));
}
else if (comp==2)
{
int le, wi;
printf ("Enter the length: ");
scanf ("%d",&le);
printf ("Enter the width: ");
scanf ("%d",&wi);
printf ("A=%d", area(le,wi));
}
else if (comp==3)
{
43
C Programs By VINOD
int length,width,height;
printf ("Enter lenght: ");
scanf ("%d",&length);
printf ("Enter width: ");
scanf ("%d",&width);
printf ("Enter height: ");
scanf ("%d",&height);
printf ("V=%d",volume (length,width,height));
}
}
int area (int le, int wi)
{
int are;
are=le*wi;
return (are);
}
int volume (int length, int width, int height)
{
int vol;
vol=(length*width*height);
return (vol);
}
main ()
{
clrscr ();
inputoutput ();
getch ();
}
44
C Programs By VINOD
#include <stdio.h>
#include <conio.h>
void main()
{
int n,m,k,i,max;
char c;
clrscr();
repeat: max=0;
k=2;
n=1;
printf("You want prime numbers upto:- ");
scanf("%d",&max);
printf("");
for (i=1;i<=max;i++)
{
again: m=(n/k)*k;
if (m!=n)
k=k+1;
else
goto try1;
if (k < n/2)
goto again;
else
printf("%d",n);
printf(" ");
try1: n=n+1;
k=2;
}
fflush(stdin);
printf ("Do you want to continue?(y/n):- ");
scanf("%c",&c);
if (c=='y')
goto repeat;
getch();
#include <stdio.h>
#include <conio.h>
void main()
45
C Programs By VINOD
{
int n,o,p,q,r,s;
char c;
clrscr();
repeat: s=0;
printf("Enter a five digit no.:- ");
scanf("%d",&n);
o=n%10000;
p=o%1000;
q=p%100;
r=q%10;
s=(n/10000)+(o/1000)+(p/100)+(q/10)+r;
printf("The sum of its digits is %d.",s);
fflush(stdin);
printf ("Do you want to continue?(y/n):- ");
scanf("%c",&c);
if (c=='y')
goto repeat;
getch();
}
#include <stdio.h>
main()
{
int n,i=1,j,c;
clrscr();
printf("Enter Number Of Terms");
printf("Prime Numbers Are Follwing");
scanf("%d",&n);
while(i<=n)
{
c=0;
for(j=1;j<=i;j++)
{
if(i%j==0)
c++;
}
if(c==2)
printf("%d ",i);
i++;
}
getch();
}
46
C Programs By VINOD
#include<stdio.h>
#define ROT 13
int main(void)
{
int c,e;
while((c=getchar())!=EOF)
{
if(c >='A' && c <='Z')
{
if((e = c + ROT) <= 'Z')
putchar(e);
else
{
e = c - ROT;
putchar(e);
}
}
else if(c >='a' && c <='z')
{
if((e= c + ROT) <= 'z')
putchar(e);
else
{
e = c - ROT;
putchar(e);
}
}
else
putchar(c);
}
return 0;
}
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
47
C Programs By VINOD
void main()
{
int i,j,l,t;
char y[20];
clrscr();
printf("Enter a string");
gotoxy(2,2);
gets(y);
l=strlen(y);
t=1;
for(j=0;j<l;j++,t++)
{
for(i=3;i<=24;i++)
{
clrscr();
puts(y);
gotoxy(t,i);
printf("%c",y[j]);
delay(100);
}
}
clrscr();
getch();
}
#include <stdio.h>
#include <conio.h>
void main()
{
int a=0,e=0,i=0,o=0,u=0,sum=0;
char c;
clrscr();
printf("Enter string:- ");
printf("String will be terminated if you press Ctrl-Z & then ENTER.");
printf("STRING:- ");
while ((c=getchar())!=EOF)
{
if (c=='a'||c=='A')
a=a+1;
if (c=='e'||c=='E')
e=e+1;
if (c=='i'||c=='I')
i=i+1;
if (c=='o'||c=='O')
48
C Programs By VINOD
o=o+1;
if (c=='u'||c=='U')
u=u+1;
}
sum=a+e+i+o+u;
printf("Frequency of vowel 'a' is %d.",a);
printf("Frequency of vowel 'e' is %d.",e);
printf("Frequency of vowel 'i' is %d.",i);
printf("Frequency of vowel 'o' is %d.",o);
printf("Frequency of vowel 'u' is %d.",u);
printf("Total no. of vowels in the text is %d.",sum);
printf("HAVE A NICE DAY! BYE.");
getch();
}
#include<stdio.h>
#include<conio.h>
void main()
{
int a[10][10];
int i,j,c,n;
clrscr();
printf("Enter how many lines do you want");
scanf("%d",&n);
a[1][1]=1;
printf("%5d",a[1][1]);
a[2][1]=1;a[2][2]=2;a[2][3]=1;
printf("%d %d %d",a[2][1],a[2][2],a[2][3]);
for(i=3;i<=n;i++)
{
a[i][1]=1;
printf("%d",a[i][1]);
j=2;c=3;
while(j<=i)
{
a[i][j]=a[i-1][c-1]+a[i-1][c-2];
printf("%5d",a[i][j]);
c=c+1;
j=j+1;
}
a[i][j]=1;
printf("%d",a[i][j]);
}
getch();
49
C Programs By VINOD
#include <stdio.h>
#include <conio.h>
long int factorial(int n);
void main()
{
int n,i;
float s,r;
char c;
clrscr();
repeat : printf("You have this series:- 1/1! + 2/2! + 3/3! + 4/4! ...");
printf("To which term you want its sum? ");
scanf("%d",&n);
s=0;
for (i=1;i<=n;i++)
{ s=s+((float)i/(float)factorial(i)); }
printf("The sum of %d terms is %f",n,s);
fflush(stdin);
printf ("Do you want to continue?(y/n):- ");
scanf("%c",&c);
if (c=='y')
goto repeat;
getch();
}
/*Factorial Function*/
#include <stdio.h>
#include <conio.h>
long int factorial(int n);
void main()
50
C Programs By VINOD
{
int n,i;
float s,r;
char c;
clrscr();
repeat : printf("You have this series:- 1/1! + 2/2! + 3/3! + 4/4!..");
printf("To which term you want its sum? ");
scanf("%d",&n);
s=0;
for (i=1;i<=n;i++)
{
s=s+((float)i/(float)factorial(i));
}
printf("The sum of %d terms is %f",n,s);
fflush(stdin);
printf ("Do you want to continue?(y/n):- ");
scanf("%c",&c);
if (c=='y')
goto repeat;
getch();
}
/* Prg. to convert upper case to lower case or lower case to upper case
depending on the name it is invoked with as found in argument.*/
#include <stdio.h>
#include <conio.h>
void lower_to_upper();
void upper_to_lower();
void main()
{
int n;
clrscr();
printf("Please enter your choice.");
printf("(1) for upper to lower conversion.");
printf("(2) for lower to upper conversion.");
51
C Programs By VINOD
printf("CHOICE:- ");
scanf("%d",&n);
switch (n)
{
case 1:
{
printf("Please enter a string in upper case.");
printf("String will be terminated if you press Ctrl-Z.");
printf("STRING:- ");
upper_to_lower();
break;
}
case 2:
{
printf("Please enter a string in lower case.");
printf("String will be terminated if you press Ctrl-Z.");
printf("STRING:- ");
lower_to_upper();
break;
}
default:
printf("ERROR");
}
printf("HAVE A NICE DAY! BYE.");
getch();
}
void upper_to_lower()
{
int i,j;
char c4[80],c3;
for (i=0;(c3=getchar())!=EOF;i++)
c4[i]=(c3>='A' && c3<='Z')?('a' + c3 -'A'):c3;
printf("The lower case equivalent is ");
for (j=0;j<i;j++)
putchar(c4[j]);
return;
}
void lower_to_upper()
{
int i,j;
char c2[80],c1;
for (i=0;(c1=getchar())!=EOF;i++)
c2[i]=(c1>='a' && c1<='z')?('A' + c1 -'a'):c1;
printf("The upper case equivalent is ");
52
C Programs By VINOD
for (j=0;j<i;j++)
putchar(c2[j]);
return;
}
#include<stdio.h>
#include<math.h>
void main()
{
int day1,mon1,year1,day2,mon2,year2;
int ref,dd1,dd2,i;
clrscr();
printf("Enter first day, month, year");
scanf("%d%d%d",&day1,&mon1,&year1);
scanf("%d%d%d",&day2,&mon2,&year2);
ref = year1;
if(year2<year1)
ref = year2;
dd1=0;
dd1=func1(mon1);
for(i=ref;i<year1;i++)
{
if(i%4==0)
dd1+=1;
}
dd1=dd1+day1+(year1-ref)*365;
printf("No. of days of first date fronm the Jan 1 %d= %d",year1,dd1);
/* Count for additional days due to leap years*/
dd2=0;
for(i=ref;i<year2;i++)
{
if(i%4==0)
dd2+=1;
}
dd2=func1(mon2)+dd2+day2+((year2-ref)*365);
printf("No. of days from the reference year's first Jan = %d",dd2);
printf("Therefore, diff between the two dates is %d",abs(dd2-dd1));
getch();
}
53
C Programs By VINOD
#include<stdio.h>
#include<conio.h>
void sort(void);
int c,a[20],l;
void main()
{
clrscr();
printf("Enter no. of elements in the list:- ");
scanf ("%d",&l);
printf("CHOICE:-");
printf("(1) Sort in ascending order.");
printf("(2) Sort in descending order.");
printf("CHOICE:- ");
scanf("%d",&c);
if (c!=1 && c!=2)
{
printf("ERROR");
getch();
exit(0);
}
sort();
getch();
54
C Programs By VINOD
void sort(void)
{
int n,i,j,temp=0,min,k;
for (i=1;i<=l;i++)
{
printf("Enter no.:- ");
scanf("%d",&a[i]);
}
for (i=1;i<=(l-1);i++)
{
min=a[i];
k=i;
for (j=(i+1);j<=l;j++)
{
if (a[j]<min)
{
min=a[j];
k=j;
}
}
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
switch(c)
{
case 1:
printf("Elements in ascending order are:-");
for (i=1;i<=l;i++)
printf("%d",a[i]);
break;
case 2:
printf("Elements in descending order are:-");
for (i=l;i>=1;i--)
printf("%d",a[i]);
break;
default:
printf("ERROR");
}
return;
}
/*Merge sort*/
#include<stdio.h>
55
C Programs By VINOD
56
C Programs By VINOD
{
arr[k]=b[k];
}
}
void main()
{
int arr[20];
int n;
printf("Enter number of data:");
scanf("%d",&n);
getdata(arr,n);
partition(arr,0,n-1);
display(arr,n);
getchar();
}
/*No guessing*/
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<process.h>
int no=0;
int client[4];
void calno(int);
void main(){
int x[4],check,k,tiger,goat,score=1000;
char ch;
int i,count,m,n,j;
clrscr();
/*Random no generation*********************** */
randomize();
while(1){
57
C Programs By VINOD
x[0]=random(9);
if(x[0]!=0)
break;
}
while(1){
x[1]=random(9);
if(x[0]!=x[1])
break;
}
while(1){
x[2]=random(9);
if(x[2]!=x[1]&&x[2]!=x[0])
break;
}
while(1){
x[3]=random(9);
if(x[3]!=x[2]&&x[3]!=x[1]&&x[3]!=x[0])
break;
}
/* ******************************************** */
for(i=0;i<4;i++){
printf("%d",x[i]);
}
printf(" -----This is a game of goat and tiger------");
printf("________________________________________");
printf("***First read these instructions***");
printf("1.The no should be 4 digit no without 0 in the first place");
printf("2. The digit shouldn't be reapeated");
printf("Do you agree the agreement and ready for the game(Y/N): ");
scanf("%c",&ch);
if(ch=='n'||ch=='N')
exit(0);
printf("-------------------------------------------------------");
printf("^^^^^^^^^Now you will have to guess the no^^^^^^^^:");
/* starting of guessing****************** */
for(i=1;i<=10;i++){
tiger=0;
goat=0;
printf("Enter the %d guess: ",i);
scanf("%d",&check);
calno(check);
for(count=0;count<4;count++){
if(x[count]==client[count])
tiger=tiger+1;
}
printf("You have got %d tiger",tiger);
if(tiger==4)
break;
/*---------------check for goat----------------------*/
for(m=0;m<4;m++){
for(n=0;n<4;n++){
58
C Programs By VINOD
if(client[m]!=x[m]){
if(client[m]==x[n])
goat=goat+1;
}
}
}
}
if(tiger<4){
printf("-----Sorry u have lost the game-----");
printf("the no is ");
for(j=0;j<4;j++){
printf("%d",x[j]);
}
}
else
printf("-----You have got the no in %d guess and you score is%d----",j,score);
getch();
}
#include<stdio.h>
#include<conio.h>
#define FIRST 0
#define SECOND 1
#define THIRD 2
//Variables
int a,b,c,ch;
float d;
//Function Prototype
void Read();
void Operation();
void Display();
59
C Programs By VINOD
void main()
{
printf("
void Read()
{
clrscr();
printf("
Enter the value of a : ");
scanf("%d",&a);
printf("
Enter the value of b : ");
scanf("%d",&b);
}
void Operation()
{
printf("
ArithMetic Operations
");
printf("---------------------
");
printf("1 -> Addition
");
printf("2 -> Subtraction
");
printf("3 -> Multiplication
");
printf("---------------------
");
scanf("%d",&ch);
switch(ch)
{
case 1:
c = a+b;
break;
case 2:
c = a-b;
break;
case 3:
c = a*b;
break;
}
60
C Programs By VINOD
void Display()
{
switch(ch)
{
case 1:
printf("
#include<stdio.h>
#include<conio.h>
static char *months[]={"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"};
void main()
{
static int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
long int ndays,ldays,tydays,tdays;
int d,i,m,fday,y;
char ch;
textcolor(LIGHTGREEN);
textbackground(LIGHTBLUE);
clrscr();
printf("Enter year(1900 onwards) & month(number):");
61
C Programs By VINOD
scanf("%d%d",&y,&m);
while(1)
{
ndays=(y-1)*365l;
ldays=(y-1)/4-(y-1)/100+(y-1)/400;
tdays=ndays+ldays;//total days
//check for leap year
if((y%100==0 && y%400==0)||(y%4==0 && y%100!=0))
days[1]=29;
else
days[1]=28;
d=days[m-1];
tydays=0;
for(i=0;i<=m-2;i++)
tydays=tydays+days[i];
tdays=tydays+tdays;
fday=tdays%7;
cal(y,m,fday,d);
ch=getche();
switch(ch)
{
case 77:
if(m==12)
{
y++;
m=1;
}
else
m++;
break;
case 72:
y++;
continue;
case 75:
if(m==1)
{
y--;
m=12;
}
else
m--;
break;
case 80:
y--;
continue;
case 27:
exit(0);
}}}
cal(int yr,int mo,int fd,int da)
{
int i,r,c;
char a;
clrscr();
gotoxy(25,2);
printf("%s %d",months[mo-1],yr);
62
C Programs By VINOD
textcolor(LIGHTGREEN);
gotoxy(5,5);
printf("____________________________________________________");
gotoxy(10,6);
printf("MON TUE WED THU FRI SAT SUN");
gotoxy(5,7);
printf("____________________________________________________");
r=9;
c=11+(6*fd);
for(i=1;i<=da;i++)
{
gotoxy(c,r);
if(c==47)
textcolor(RED);
else
textcolor(LIGHTGREEN);
cprintf("%d",i);
if(c<=41)
c=c+6;
else
{
c=11;
r=r+1;
}
}
textcolor(LIGHTGREEN);
gotoxy(5,15);
printf("____________________________________________________");
gotoxy(11,17);
printf("UP-Next Year DOWN-Prev Year");
gotoxy(11,18);
printf("RIGHT-Next Month LEFT-Prev Month");
gotoxy(27,20);
printf("Esc-Exit");
return 0;
}
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <ctype.h>
63
C Programs By VINOD
{
k=days%7;/*remainder gives the starting day of each month*/
if(flag==0)
{
for(j=1; j<=k; j++)/*controls tabs of first week*/
printf(" ");
flag=1;/*ensures that block is only executed once*/
column=k;
}
printf("%d ", i);
column++;
if(column%7==0)/*prints new line at the end of each week*/
printf("");
}
printf("Press any key to continue");
getch();
}
days+=366;
else
days+=365;
}
for(month=1; month<=12; month++)
{
printf("");
switch(month)
/*switch case used to display each month and
increment no. of days*/
{
case 1: printf(" JANUARAY %d", year);
display(31);
days+=31;
break;
case 2: printf(" FEBURARY %d", year);
if((year%400==0)?1:((year%100==0)?0:((year%4==0)?1:0)))
{
display(29);
days+=29;
}
else
64
C Programs By VINOD
{
display(28);
days+=28;
}
break;
case 3: printf(" MARCH %d", year);
display(31);
days+=31;
break;
case 4: printf(" APRIL %d", year);
display(30);
days+=30;
break;
case 5: printf(" MAY %d", year);
display(31);
days+=31;
break;
case 6: printf(" JUNE %d", year);
display(30);
days+=30;
break;
case 7: printf(" JULY %d", year);
display(31);
days+=31;
break;
case 8: printf(" AUGUST %d", year);
display(31);
days+=31;
break;
case 9: printf(" SEPTEMBER %d", year);
display(30);
days+=30;
break;
case 10: printf(" OCTOBER %d", year);
display(31);
days+=31;
break;
case 11: printf(" NOVEMBER %d", year);
display(30);
days+=30;
break;
case 12: printf(" DECEMBER %d", year);
display(31);
days+=31;
break;
}
}
}
void main()
{
char ch[10];
int i, year, choice;
do
{
65
C Programs By VINOD
clrscr();
days=0;
printf("Enter the year in 'yyyy' format:");
scanf("%s", ch);/*stores input first as a string*/
for(i=0; i<strlen(ch); i++)
if(ch[i]<'0' || ch[i]>'9')/*checks for invalid inputs*/
{
printf("Invalid Year!");
printf("END OF PROGRAM");
getch();
exit(0);
}
year = atoi(ch);
/*converts the year from string to integer datatype*/
clrscr();
printf("Calender for Year %d", year);
printf("**********************");
calculate(year);
/*calls function to calculate no. of days elapsed*/
printf("*******************************************");
printf("Press 1 to continue, 2 to exit");
scanf("%d", &choice);
}while(choice==1);
clrscr();
printf("END OF PROGRAM");
getch();
}
INTERVIEW QUESTIONS C
1. void main()
{
int const * p=5;
printf("%d",++(*p));
}
Answer:
Compiler error: Cannot modify a constant value.
Explanation:
p is a pointer to a "constant integer". But we tried to change the
value
of the "constant integer".
2. main()
{
char s[ ]="man";
int i;
for(i=0;s[ i ];i++)
printf("
%c%c%c%c",s[ i ],*(s+i),*(i+s),i[s]);
}
Answer:
66
C Programs By VINOD
mmmm
aaaa
nnnn
Explanation:
s[i], *(i+s), *(s+i), i[s] are all different ways of expressing the
same
idea. Generally array name is the base address for that array. Here s
is
the base address. i is the index number/displacement from the base
address. So, indirecting it with * is same as s[i]. i[s] may be
surprising. But in the case of C it is same as s[i].
3. main()
{
float me = 1.1;
double you = 1.1;
if(me==you)
printf("I love U");
else
printf("I hate U");
}
Answer:
I hate U
Explanation:
For floating point numbers (float, double, long double) the values
cannot
be predicted exactly. Depending on the number of bytes, the precession
with of the value represented varies. Float takes 4 bytes and long
double
takes 10 bytes. So float stores 0.9 with less precision than long
double.
Rule of Thumb:
Never compare or at-least be cautious when using floating point numbers
with relational operators (== , >, <, <=, >=,!= ) .
4. main()
{
static int var = 5;
printf("%d ",var--);
if(var)
main();
}
Answer:
54321
Explanation:
When static storage class is given, it is initialized once. The change
in
the value of a static variable is retained even between the function
calls. Main is also treated like any other ordinary function, which can
be
called recursively.
5. main()
{
int c[ ]={2.8,3.4,4,6.7,5};
67
C Programs By VINOD
int j,*p=c,*q=c;
for(j=0;j<5;j++) {
printf(" %d ",*c);
++q; }
for(j=0;j<5;j++){
printf(" %d ",*p);
++p; }
}
Answer:
2222223465
Explanation:
Initially pointer c is assigned to both p and q. In the first loop,
since
only q is incremented and not c , the value 2 will be printed 5 times.
In
second loop p itself is incremented. So the values 2 3 4 6 5 will be
printed.
6. main()
{
extern int i;
i=20;
printf("%d",i);
}
Answer:
Linker Error : Undefined symbol '_i'
Explanation:
extern storage class in the following declaration,
extern int i;
specifies to the compiler that the memory for i is allocated in some
other
program and that address will be given to the current program at the
time
of linking. But linker finds that no other variable of name i is
available
in any other program with memory space allocated for it. Hence a linker
error has occurred .
7. main()
{
int i=-1,j=-1,k=0,l=2,m;
m=i++&&j++&&k++||l++;
printf("%d %d %d %d %d",i,j,k,l,m);
}
Answer:
00131
Explanation :
Logical operations always give a result of 1 or 0 . And also the
logical
AND (&&) operator has higher priority over the logical OR (||)
operator.
So the expression ‘i++ && j++ && k++’ is executed first. The result of
this expression is 0 (-1 && -1 && 0 = 0). Now the expression is 0 ||
68
C Programs By VINOD
2
which evaluates to 1 (because OR operator always gives 1 except for ‘0
||
0’ combination- for which it gives 0). So the value of m is 1. The
values
of other variables are also incremented by 1.
8. main()
{
char *p;
printf("%d %d ",sizeof(*p),sizeof(p));
}
Answer:
12
Explanation:
The sizeof() operator gives the number of bytes taken by its operand. P
is
a character pointer, which needs one byte for storing its value (a
character). Hence sizeof(*p) gives a value of 1. Since it needs two
bytes
to store the address of the character pointer sizeof(p) gives 2.
9. main()
{
int i=3;
switch(i)
{
default:printf("zero");
case 1: printf("one");
break;
case 2:printf("two");
break;
case 3: printf("three");
break;
}
}
Answer :
three
Explanation :
The default case can be placed anywhere inside the loop. It is executed
only when all other cases doesn't match.
10. main()
{
printf("%x",-1<<4);
}
Answer:
fff0
Explanation :
-1 is internally represented as all 1's. When left shifted four times
the
least significant 4 bits are filled with 0's.The %x format specifier
specifies that the integer value be printed as a hexadecimal value.
69
C Programs By VINOD
11. main()
{
char string[]="Hello World";
display(string);
}
void display(char *string)
{
printf("%s",string);
}
Answer:
Compiler Error : Type mismatch in redeclaration of function display
Explanation :
In third line, when the function display is encountered, the compiler
doesn't know anything about the function display. It assumes the
arguments
and return types to be integers, (which is the default type). When it
sees
the actual function display, the arguments and type contradicts with
what
it has assumed previously. Hence a compile time error occurs.
12. main()
{
int c=- -2;
printf("c=%d",c);
}
Answer:
c=2;
Explanation:
Here unary minus (or negation) operator is used twice. Same maths
rules
applies, ie. minus * minus= plus.
Note:
However you cannot give like --2. Because -- operator can only be
applied
to variables as a decrement operator (eg., i--). 2 is a constant and
not a
variable.
14. main()
{
int i=10;
i=!i>14;
printf("i=%d",i);
70
C Programs By VINOD
}
Answer:
i=0
Explanation:
In the expression !i>14 , NOT (!) operator has more precedence than ‘
>’
symbol. ! is a unary logical operator. !i (!10) is 0 (not of true is
false). 0>14 is false (zero).
15. #include<stdio.h>
main()
{
char s[]={'a','b','c','
','c','
C++
Class with constructor ( for bank account )
# include<iostream.h>
# include<conio.h>
# include<iomanip.h>
class bank
{
char name[20];
int acno;
char actype[4];
float balance;
public:
// Constuctor
bank()
{
cout<<"Constructor Invoked !";
acno = 0000;
balance = 0.0;
}
void init();
void deposit();
void withdraw();
void disp_det();
};
71
C Programs By VINOD
New Account
";
cout<<"
Account Details
";
cout<<"Name of the depositor : "<<name<<endl;
cout<<"Account Number : "<<acno<<endl;
cout<<"Account Type : "<<actype<<endl;
cout<<"Balance : $"<<balance<<endl;
}
// main function , exectution starts here
void main(void)
{
clrscr();
bank obj;
int choice =1;
while (choice != 0 )
{
cout<<"
Enter 0 to exit
1. Initialize a new acc.
2. Deposit
3.Withdraw
4.See A/c Status";
cin>>choice;
switch(choice)
{
case 0 :obj.disp_det();
cout<<"
EXITING PROGRAM.";
break;
case 1 : obj.init();
break;
case 2: obj.deposit();
break;
case 3 : obj.withdraw();
break;
case 4: obj.disp_det();
break;
default: cout<<"
Illegal Option"<<endl;
73
C Programs By VINOD
}
}
getch();
}
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#define ESC 0x1b
#define BSPACE 0x08
class Timer
{
public:
Timer();
void start();
void stop();
void reset();
int status();
double time();
static double resolution();
private:
return time_/1.E6;
}
void Timer::start()
{
if( !running )
{
outportb( 0x43, 0x34 );
asm jmp __1;
__1:
outportb( 0x40, 0 );
asm jmp __2;
__2:
outportb( 0x40, 0 );
startTime.dosCount = *dosTime;
startTime.timerCount = 0;
running = 1;
}
}
void Timer::stop()
{
outportb( 0x43, 0 );
unsigned char temp = inportb( 0x40 );
TIME stopTime;
stopTime.timerCount = (inportb( 0x40 ) << 8) + temp;
stopTime.dosCount = *dosTime;
TIME elapsedTime;
elapsedTime.dosCount = stopTime.dosCount - startTime.dosCount;
elapsedTime.timerCount = -( stopTime.timerCount - adjust );
elapsedTime.timerCount)*fudge;
running = 0;
void Timer::reset()
{
time_ = 0;
if( running )
start();
}
unsigned Timer::calibrate()
{
adjust = 0;
unsigned long sum = 0;
Timer w;
for( int i = 0; i < 100; i++ )
{
w.start();
w.stop();
sum += w.time();
w.reset();
}
return (unsigned)((sum+5)/100);
}
void main()
{
clrscr();
Timer t;
char text[1000];
int i = 0, space_count = 0, letter_count = 0;
float duration;
printf("
PROGRAM TO TEST TYPING SPEED
");
printf("Hit any key to start timer...
");
if(getch())
{
printf("Your time has started. Start typing. Hit Esc when done.
76
C Programs By VINOD
");
t.start();
}
while(1)
{
text[i] = getche();
letter_count++;
if(text[i] == ' ')
space_count++;
if(text[i] == '
')
printf("
");
if(text[i] == BSPACE)
printf(" "); // to erase previous character instead of cursoring
over
if(text[i] == ESC)
{
printf(" ");
// to eliminate a special character that is printed for Esc
// A Backspace followed by Space erases previous character.
break;
}
}
t.stop();
duration = t.time();
printf("
");
printf("%6.2f characters per minute
",60*letter_count/duration);
printf("%6.2f words per minute (Actual)
",60*space_count/duration);
printf("%6.2f words per minute (Average)",60*letter_count/duration/5);
getch();
}
77
C Programs By VINOD
#include <stdio.h>
#include <conio.h>
#include <math.h>
void dtoh(int d);
main()
{
int d;
clrscr();
printf("Enter a no. in decimal system:- ");
scanf("%d",&d);
dtoh(d);
printf("\n\nHAVE A NICE DAY! BYE.");
getch();
}
void dtoh(int d)
{
int b,c=0,a[5],i=0;
b=d;
while (b>15)
{
a[i]=b%16;
b=b/16;
i++;
c++;
}
a[i]=b;
printf("Its hexadecimal equivalent is ");
for (i=c;i>=0;--i)
{
if (a[i]==10)
printf("A");
else if (a[i]==11)
printf("B");
else if (a[i]==12)
printf("C");
else if (a[i]==13)
printf("D");
else if (a[i]==14)
printf("E");
else if (a[i]==15)
78
C Programs By VINOD
printf("F");
else
printf("%d",a[i]);
}
return;
}
#include<stdio.h>
void pw(long,char[]);
char *one[]={" "," one"," two"," three"," four"," five"," six"," seven","eight"," Nine"," ten","
eleven","
void main()
{
long n;
clrscr();
printf("Enter any 9 digit no: ");
scanf("%9ld",&n);
if(n<=0)
printf("Enter numbers greater than 0");
else
{
pw((n/10000000),"crore");
pw(((n/100000)%100),"lakh");
pw(((n/1000)%100),"thousand");
pw(((n/100)%10),"hundred");
pw((n%100)," ");
}
getch();
}
79
C Programs By VINOD
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
clrscr();
printf("Enter a line of text:- ");
printf("String will be terminated if you press ENTER.");
printf("Press Ctrl-Z & then ENTER to end the task.");
printf("STRING:- ");
c=getchar();
printf("Justified form:- ");
while (c!=EOF)
{
if (c==' ')
putchar(c);
while (c==' ')
{
c=getchar();
}
putchar(c);
c=getchar();
}
getch();
}
#include<stdio.h>
#define NULL 0
FILE *fpt;
void main()
{
char name[20],c;
int nw=0;
clrscr();
printf("Enter the name of file to be checked:- ");
80
C Programs By VINOD
gets(name);
fpt=fopen(name,"r");
if (fpt==NULL)
{
printf("ERROR - can/'t open file %s",name);
getch();
exit(0);
}
else
{
while ((c=getc(fpt))!=EOF)
{
switch(1)
{
case 1:
if (c==' ')
{
point: do
nw=nw+1-1;
while((c=getc(fpt))==' ');
if (c!=' ')
nw=nw+1;
if(c=='')nw--;
}
case 3:
if(c==''){
goto point;}
}
}
}
printf("The no. of words in %s is %d. ",name,nw);
getch();
}
WORK OUT
/*Program to Delete Duplicates in Array*/
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<dos.h>
81
C Programs By VINOD
void main()
{
int i,j,l,t=1;
char y,s[15];
clrscr();
s[0]='E';
s[1]='n';
s[2]='t';
s[3]='e';
s[4]='r';
s[5]=' ';
s[6]='a';
s[7]=' ';
s[8]='s';
s[9]='t';
s[10]='r';
s[11]='i';
s[12]='n';
s[13]='g';
s[14]=NULL;
printf("Enter a string");
gotoxy(1,2);
while((y=getchar())!='')
{
for(i=3,l=200;i<=24;i++,l=l+50)
{
gotoxy(t,i);
if(y!=' ')
{
printf("%c",y);
gotoxy(t,i-1);
printf(" ");
sound(l);
delay(80);
}
}
t++;
}
gotoxy(1,1);
t=1;
for(j=0,l=100;j<14;j++,l=l+50)
{
if(l>200)
l=100;
for(i=2;i<24;i++,l++)
{
82
C Programs By VINOD
gotoxy(t,i);
if(s[j]!=' ')
{
printf("%c",s[j]);
gotoxy(t,i-1);
printf(" ");
sound(l);
delay(80);
}
}
t++;
}
nosound();
getch();
}
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
char z[5],c;
int i=0;
clrscr();
printf("Enter a hexadecimal no.");
printf("Number will be accepted if you press Ctrl-Z & then ENTER after inputting no.");
printf("NUMBER:- " );
while ((c=getchar())!=EOF)
{
printf(" ");
if (c=='1')
printf("0001");
else if (c=='2')
printf("0010");
else if (c=='3')
printf("0011");
else if (c=='4')
printf("0100");
else if (c=='5')
printf("0101");
else if (c=='6')
83
C Programs By VINOD
printf("0110");
else if (c=='7')
printf("0111");
else if (c=='8')
printf("1000");
else if (c=='9')
printf("1001");
else if (c=='A'||c=='a')
printf("1010");
else if (c=='B'||c=='b')
printf("1011");
else if (c=='C'||c=='c')
printf("1100");
else if (c=='D'||c=='d')
printf("1101");
else if (c=='E'||c=='e')
printf("1110");
else if (c=='F'||c=='f')
printf("1111");
else
{ printf("ERROR");
getch();
exit(0); }
}
printf("is its binary equivalent.");
getch();
}
#include <stdio.h>
#include <conio.h>
#include <math.h>
void btod(int b[]);
int c;
void main()
{
int a[5],d,i,e,f,g;
clrscr();
printf("What will be the length of input no.? ");
scanf("%d",&c);
printf("Don't exceed input from your input limit or 5 digits in any case");
printf("Enter no.:- ");
scanf("%d",&d);
for (i=c-1;i>=0;--i)
84
C Programs By VINOD
{
e = pow(10,i);
a[i] = d/e;
d = d%e;
}
btod(a);
printf("\n\nHAVE A NICE DAY! BYE.");
getch();
}
#include <stdio.h>
#include <conio.h>
#include <math.h>
int btod(int b[]);
void dtoh(int s);
int c;
void main()
{
int a[5],d,i,e,f,g,s;
clrscr();
printf("What will be the length of input no.? ");
scanf("%d",&c);
85
C Programs By VINOD
printf("Don't exceed input from your input limit or 5 digits in any case");
printf("Enter no.:- ");
scanf("%d",&d);
for (i=c-1;i>=0;--i)
{
e = pow(10,i);
a[i] = d/e;
d = d%e;
}
s=btod(a);
dtoh(s);
printf("HAVE A NICE DAY! BYE.");
getch();
}
void dtoh(int s)
{
int b,c=0,a[5],i=0;
b=s;
while (b>15)
{
a[i]=b%16;
b=b/16;
i++;
c++;
86
C Programs By VINOD
}
a[i]=b;
printf("Its hexadecimal equivalent is ");
for (i=c;i>=0;--i)
{
if (a[i]==10)
printf("A");
else if (a[i]==11)
printf("B");
else if (a[i]==12)
printf("C");
else if (a[i]==13)
printf("D");
else if (a[i]==14)
printf("E");
else if (a[i]==15)
printf("F");
else
printf("%d",a[i]);
}
return;
}
void main()
{
int i=0,j=0,k=0,count=0,l=0,k1=0;
char a[80],b[80];
clrscr();
printf("Enter main string:-");
gets(a);
printf("Enter sub-string:-");
gets(b);
l=strlen(b);
while (a[i]!=EOF)
{
if (a[i]==b[j])
{
i++;
j++;
87
C Programs By VINOD
k1=1;
if (j==l)
{
j=0;
k=1;
count=count+1;
}
}
else
{
if (k1==1)
{
j=0;
k1=0;
}
else
i++;
}
}
if (k==1)
{
printf("The given sub-string is present in the main string.");
printf("It is present %d times.",count);
}
else
{
if (k==0)
printf("The given sub-string is not present in the main string.");
}
getch();
}
#include<stdio.h>
main()
{
int d,m,y,i;
int r=0,r1=0,r2=0,s=0;
clrscr();
input:
88
C Programs By VINOD
goto input;
}
else if((d>31)){
printf("Enter valid date");
goto input;
}
if((d<1)||(m<1)){
printf("Fool,Enter positive valid data");
goto input;
}
else {
switch(m){
case 1:
case 10:
r1=d+2;
break;
case 2:
case 3:
case 11:
r1=d+5;
break;
case 4:
case 7:
r1=d+1;
89
C Programs By VINOD
break;
case 9:
case 12:
r1=d;
break;
case 5:
r1=d+3;
break;
case 6:
r1=d+6;
break;
case 8:
r1=d+4;
break;
default:
{
printf("Don't U know that there is no month greater than 12.Enter validmonthOnce again enter
the
else if(i%4==0){
if(i%100==0){
if(i%400==0)
s=s+2;
else s=s+1;
}
else s=s+2;
}
else s=s+1;
}
r2=7-s%7;
}
else if(y>2003){
for(i=2004;i<=y;i++){
90
C Programs By VINOD
if((i==y)&&(i%4==0)){
if(m>2) s=s+2;
else if(m<=2) s=s+1;
break;
}
else if(i%4==0){
if(i%100==0){
if(i%400==0)
s=s+2;
else s=s+1;
}
else s=s+2;
}
else s=s+1;
}
r2=s%7;
}
else r2=0;
r=(r1+r2)%7;
printf("");
switch(r){
case 0:
printf("The Day is SUNDAY");
break;
case 1:
printf("The Day is MONDAY");
break;
case 2:
printf("The Day is TUESDAY");
break;
case 3:
printf("The Day is WEDNESDAY");
break;
case 4:
printf("The Day is THURSDAY");
break;
case 5:
printf("The Day is FRIDAY");
break;
case 6:
printf("The Day is SATURDAY");
break;
}
printf("Thanks for using my program");
getch();
}
91
C Programs By VINOD
#include<stdio.h>
#include<conio.h>
#define LIMIT 10
void main()
{
int chckdgnl();
float deter();
float a[LIMIT][LIMIT],value;
int i,j,order;
clrscr();
printf("Enter order of determent :");
scanf("%d",&order);
for(i=0;i<order;i++)
{
for(j=0;j<order;j++)
{
printf("Enter (%d,%d) element of the determent :",i+1,j+1);
scanf("%f",&a[i][j]);
}
}
if(chckdgnl(a,order)==0)
value=0;
else
value=deter(a,order);
printf("Determinent Value :%f",value);
getch();
}
if(i==j) break;
a[j][k]=a[j][k]-a[i][k]*mult;
}
}
}
for(i=0;i<forder;i++)
{
deter=deter*a[i][i];
}
return(deter);
}
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
space(char s);
93
C Programs By VINOD
void main()
{
char s;
clrscr();
printf("Enter string.");
printf("String will be terminated if you press Ctrl-Z.");
printf("STRING:- ");
space(s);
printf("HAVE A NICE DAY! BYE.");
getch();
}
space(char s)
{
int i;
s=getchar();
for (i=0;(s=getchar())!=EOF;i++)
{
if (s==' ')
{
printf("String contains a space character.");
break;
}
}
if (s==EOF)
printf("String does not contain a space character.");
return(s);
}
#include <stdio.h>
#include <conio.h>
int strindex(char s[],char t);
void main()
{
char s[80],t;
int a=0;
clrscr();
printf("Enter main string(i.e. s):-");
gets(s);
printf("Enter the character to be searched(i.e. t):- ");
t=getchar();
94
C Programs By VINOD
a=strindex(s,t);
if (a>=0)
printf("The required character is found at position %d.",a);
else
printf("The required character is not found in the string.");
getch();
}
/*Program to find the binary number has how many ones and zeros*/
#include<stdio.h>
#include<conio.h>
void main()
{
int n,x,a,b,s;
clrscr();
a=0;b=0;
printf("enter the binary no:");
scanf("%d",&n);
s=n;
while(n>0)
{
x=n%10;
n=n/10;
if(x==0)
a++;
else if(x==1)
b++;
}
printf("the number is:%d",s);
printf("the ones are:%d",b);
printf("the zeros are:%d",a);
getch();
}
#include <stdio.h>
void main()
{
95
C Programs By VINOD
OldNum=0;
NewNum=1;
FibNum = OldNum + NewNum;
for(;;)
{
OldNum = NewNum;
NewNum = FibNum;
FibNum = OldNum + NewNum;
if(FibNum > MaxNum)
{
printf("");
getch();
exit(0);
}
printf("%d, ", FibNum);
}
getch();
}
#include<stdio.h>
#include<conio.h>
void main()
{
int a[3][3],b[3][3],c[3][3],i,j,k;
clrscr();
printf("A:");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
printf("%d ",a[i][j]);
printf(""); /*To change line.*/
96
C Programs By VINOD
printf("B:");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
printf("%d ",b[i][j]);
printf("");
}
k=0;
while(k<=2)
{
for(i=0;i<=2;i++)
{
int sum=0;
for(j=0;j<=2;j++)
sum=sum+a[i][j]*b[j][k];
c[i][k]=sum;
}
k++;
}
printf("Result: ");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
printf("%d ",c[i][j]);
printf("");
}
getch();
}
#include<stdio.h>
#include<conio.h>
void main()
{
int i,d,k,a,r,h;
char m='y';
long s,n1,n2;
clrscr();
printf("calculation ?");
scanf("%c",&m);
while(m=='Y'||m=='y')
{
clrscr();
printf("1.factorial\n2.addition\n3.subtraction\n4.multiplication\n5.division\n
6.squares\n7.exit\nenter
97
C Programs By VINOD
case 1:
clrscr();
printf("enter any positive manageable number\n");
scanf("%d",&a);
while (a<0)
scanf("%d",&a);
k=1;
for(i=1;i<=a;i++)
k=k*i;
printf("factorial is %d",k);
getch();
break;
case 2:
clrscr();
printf("enter any two numbers");
scanf(" %ld %ld",&n1,&n2);
s=n1+n2;
printf("sum of the input numbers is %ld",s);
getch();
break;
case 3:
clrscr();
printf("enter any number");
scanf("%ld,%ld",&n1,&n2);
s=n1-n2;
printf("the difference between the two numbers is %ld",s);
getch();
break;
case 4:
clrscr();
printf("enter any numbers which are to be multilied");
scanf(" %ld,%ld",&n1,&n2);
s=n1*n2;
printf("the product is %ld",s);
getch();
break;
case 5:
clrscr();
printf("enter dividend");
scanf("%d",&n1);
printf("enter divisor ");
scanf("%d",&n2);
while (n2==0)
{
scanf("%d",&n1);
scanf("%d",&n2);
}
s=n1/n2;
printf("the quotient is %d",s);
getch();
break;
case 6:
clrscr();
printf("enter the number whose square is to be found out");
scanf(" %d",&n1);
s=n1*n1;
98
C Programs By VINOD
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define MAXROWS 30
#define MAXCOLS 30
void largest(int a[][MAXCOLS],int nrows,int ncols);
void readinput(int a[][MAXCOLS],int m,int n);
void main()
{
int nrows,ncols;
int a[MAXROWS][MAXCOLS];
clrscr();
largest(a,nrows,ncols);
getch();
}
99
C Programs By VINOD
printf("%d%c",a[row][col],' ');
}
return;
}
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
int ascii_value(char c);
void main()
{
int i,a;
char c;
clrscr();
printf("Please enter a string.");
printf("String will be terminated if you press Ctrl-Z.");
printf("STRING:- ");
for (i=0;(c=getchar())!=EOF;i++)
{
a=ascii_value(c);
printf("%d%c",a,' ');
}
printf("are the ascii values of the characters of the entered string");
printf("respectively.");
printf("HAVE A NICE DAY! BYE.");
getch();
}
int ascii_value(char c)
{
int a;
a=(int)c;
return(a);
}
100
C Programs By VINOD
/*Program. to find & replace any desired character from the input text.*/
#include <stdio.h>
# include <conio.h>
void find_rep(void);
char c1,c2,a[80];
void main()
{
clrscr();
find_rep();
getch();
}
/* Function to find & replace any text */
void find_rep(void)
{
char c1,c2;
char a[80];
int i,j,k;
printf("Enter a line of text below:-");
printf("Line will be terminated by pressing ENTER.");
printf("TEXT:- ");
gets(a);
printf("Enter the replaceable & replacing letter respectively:- ");
scanf("%c%c%c",&c1,' ',&c2);
for (j=0;j<80;j++)
{
if (a[j]==c1)
a[j]=c2;
}
puts(a);
printf("Here all %c are replaced by %c.",c1,c2);
return;
}
WORK OUT
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<math.h>
int mx,my,ans=0,p=4;
screen();
101
C Programs By VINOD
void button();
int s1[]={16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31};
int s2[]={8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31};
int s3[]={4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31};
int s4[]={2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31};
int s5[]={1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31};
int a1,a2,a3,a4,a5;
void main()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\tc\bgi");
mouseini();
showmp();
action();
getch();
}
action()
{
int ans=0;
char st[10];
initialscreen();
while(1)
{
/* The X & Y coordinate of each function is calculated
with respect to mx "maximum of x value" & my "maximum of y value" */
if(click((mx/4)+95,(my/4)+100,(mx/4)+235,(my/4)+140,"Play..")==0)
{
a1=screen(s1,16);
a2=screen(s2,16);
a3=screen(s3,16);
a4=screen(s4,16);
a5=screen(s5,16);
ans=a1+a2+a3+a4+a5;
result(ans);
getch();
exit();
}
}
}
initialscreen()
{
mx=getmaxx(),my=getmaxy();
setmp();
setfillstyle(1,7);
bar(mx/4,my/4,3*mx/4,3*my/4);
setcolor(WHITE);
102
C Programs By VINOD
line(mx/4,my/4,3*mx/4,my/4);
line(mx/4,my/4,mx/4,3*my/4);
setcolor(BLACK);
line(mx/4,3*my/4,3*mx/4,3*my/4);
line(3*mx/4,my/4,3*mx/4,3*my/4);
setcolor(RED);
outtextxy((mx/4)+40,(my/4)+30,"THINK A NUMBER BETWEEN 1-31");
button((mx/4)+95,(my/4)+100,(mx/4)+235,(my/4)+140,"Play..");
}
screen(int *scr,int num)
{ int a,i,x1,y1;
char st[10];
mx=getmaxx(),my=getmaxy();
setmp();
setfillstyle(1,7);
bar(mx/4,my/4,3*mx/4,3*my/4);
setcolor(WHITE);
line(mx/4,my/4,3*mx/4,my/4);
line(mx/4,my/4,mx/4,3*my/4);
setcolor(BLACK);
line(mx/4,3*my/4,3*mx/4,3*my/4);
line(3*mx/4,my/4,3*mx/4,3*my/4);
setcolor(RED);
outtextxy((mx/4)+9,(my/4)+5,"TELL ME WHETHER THE NUMBER IS PRESENT?");
button((3*mx/4)-40 ,(3*my/4)-20,(3*mx/4)-5 ,(3*my/4)-5,"yes");
button((3*mx/4)-80 ,(3*my/4)-20,(3*mx/4)-45 ,(3*my/4)-5,"no");
x1=(mx/4)+80;
y1=(my/4)+65;
for(i=0;i<num;i++)
{
a=scr[i];
/*To convert the integer into string and then displaying it on the
graphic mode*/
itoa(a,st,10);
outtextxy(x1 ,y1,&st);
x1+=50;
if((i==3)||(i==7)||(i==11))
{
y1=y1+30;
x1=(mx/4)+80;
}
}
/*We have already noted that the numbers are placed in screen
corresponding to their binary value
To find the number we can convert these binary numbers to integers*/
while(1)
{
if (click((3*mx/4)-40 ,(3*my/4)-20,(3*mx/4)-5 ,(3*my/4)-5,"yes")==0)
{
ans=pow(2,p);
p=p-1;
return ans;
}
if (click((3*mx/4)-80 ,(3*my/4)-20,(3*mx/4)-45 ,(3*my/4)-5,"no")==0)
{
p=p-1;
103
C Programs By VINOD
return 0;
}
}
}
result(int ans)
{ char st[10];
mx=getmaxx(),my=getmaxy();
setmp();
setfillstyle(1,7);
bar(mx/4,my/4,3*mx/4,3*my/4);
setcolor(WHITE);
line(mx/4,my/4,3*mx/4,my/4);
line(mx/4,my/4,mx/4,3*my/4);
setcolor(BLACK);
line(mx/4,3*my/4,3*mx/4,3*my/4);
line(3*mx/4,my/4,3*mx/4,3*my/4);
setcolor(RED);
if(ans==0)
{
outtextxy((mx/4)+110,(my/4)+45,"I DONT BELEIVE");
outtextxy((mx/4)+60,(my/4)+60,"YOU MIGHT BE WRONG SOMEWHERE");
}
else
{
outtextxy((mx/4)+95,(my/4)+30,"THE NUMBER IS ");
itoa(ans,st,10);
outtextxy((mx/4)+205,(my/4)+30,st);
}
button((mx/4)+95,(my/4)+100,(mx/4)+235,(my/4)+140,"TRY AGAIN!");
button((mx/4)+95,(my/4)+150,(mx/4)+235,(my/4)+190,"EXIT");
while(1)
{
if (click((mx/4)+95,(my/4)+150,(mx/4)+235,(my/4)+190,"EXIT")==0)
{
closegraph();
restorecrtmode();
exit();
}
if (click((mx/4)+95,(my/4)+100,(mx/4)+235,(my/4)+140,"TRY AGAIN!")==0)
{
p=4;
action();
}
}
}
void button(int x1,int y1,int x2,int y2,char str[])
{
int xc,yc,i=0,l=0;
while(i<strlen(str))
{
l+=4;
i++;
}
xc=(x2-x1)/2+x1-l;
yc=(y2-y1)/2+y1;
unpress(x1,y1,x2,y2);
104
C Programs By VINOD
settextstyle(0,0,0);
setcolor(RED);
outtextxy(xc,yc,str);
}
unpress(int x1,int y1,int x2,int y2)
{
setlinestyle(0,1,1);
setfillstyle(1,7);
bar(x1,y1,x2,y2);
setcolor(WHITE);
line(x1,y1,x2,y1);
line(x1,y1,x1,y2);
setcolor(0);
line(x1,y2,x2,y2);
line(x2,y1,x2,y2);
return 0;
}
press(int x1,int y1,int x2,int y2)
{
setlinestyle(0,1,1);
setfillstyle(1,7);
bar(x1,y1,x2,y2);
setcolor(0);
line(x1,y1,x2,y1);
line(x1,y1,x1,y2);
setcolor(WHITE);
line(x1,y2,x2,y2);
line(x2,y1,x2,y2);
return 0;
}
mouseini()
{
union REGS i,o;
i.x.ax=0;
int86(0x33,&i,&o);
return(o.x.ax);
}
showmp()
{
union REGS i,o;
i.x.ax=1;
int86(0x33,&i,&o);
return 0;
}
hidemp()
{
union REGS i,o;
i.x.ax=2;
int86(0x33,&i,&o);
return 0;
}
105
C Programs By VINOD
int86(0x33,&i,&o);
*button=o.x.bx;
*x=o.x.cx;
*y=o.x.dx;
return 0;
}
setmp()
{
union REGS i,o;
i.x.ax=4;
i.x.cx=(3*mx/4)+20;
i.x.dx=(3*my/4)+20;
int86(0x33,&i,&o);
}
click(int x1,int y1,int x2,int y2,char str[])
{
int button,x,y;
int xc,yc,i=0,l=0;
while(i<strlen(str))
{
l+=4;
i++;
}
xc=(x2-x1)/2+x1-l;
yc=(y2-y1)/2+y1;
getmp(&button,&x,&y);
if( (x>x1 && x<x2) && (y>y1 && y<y2) && button==1)
{
hidemp();
press(x1,y1,x2,y2);
setcolor(RED);
settextstyle(0,0,0);
outtextxy(xc,yc,str);
showmp();
while((button==1))
getmp(&button,&x,&y);
hidemp();
unpress(x1,y1,x2,y2);
showmp();
setcolor(RED);
settextstyle(0,0,0);
outtextxy(xc,yc,str);
for(i=50;i<500;i=i+50)
{
delay(10);
sound(i+200);
}
showmp();
nosound();
setcolor(RED);
settextstyle(0,0,0);
outtextxy(xc,yc,str);
return 0;
}
else return 1;
106
C Programs By VINOD
/*Pyramid of Numbers*/
#include <stdio.h>
#include <conio.h>
while( length-- ) {
if( j == 1 ) {
for( i = 1; i <= length + 5; i++ )
printf( " " );
printf( "%d", j++ );
k--;
line++;
}
else if( i % 2 ){
for( i = 1; i <= length + 5; i++ )
printf( " " );
for( i = 1; i <= line; i++ )
printf( "%d ", ( j++ % 10 ) );
printf( "" );
line++;
k--;
}
else {
for( i = 1; i <= length + 5 ; i++ )
printf( " " );
for( i = 1; i <= line; i++ )
printf( "%d ", ( j++ % 10 ) );
printf( "" );
line++;
k--;
}
}
return 0;
}
int main( )
{
int length;
pyramid( length );
getch( );
107
C Programs By VINOD
return 0;
}
#include<stdio.h>
#include<conio.h>
void main()
{
double n,g1,g2;
int flag=0;
clrscr();
printf("Enter the no.: ");
scanf("%lf",&n);
if(n<0)
{
n=-n;
flag=1;
}
else if(n==0)
{
printf("The root of %6.4lf is",n);
textcolor(GREEN);
cprintf(" %6.4lf",g2);
getch();
exit(0);
}
g2=n/2;
do
{
g1=g2;
g2=(g1+n/g1)/2;
}
while((g1-g2)!=0);
if(flag==1)
{
printf("The root of %6.4lf is",-n);
textcolor(GREEN);
cprintf(" +/- %6.4lf i",g2);
}
else
{
printf("The root of %6.4lf is",n);
textcolor(GREEN);
cprintf(" +/- %6.4lf",g2);
}
getch();
}
WORK OUT
108
C Programs By VINOD
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<process.h>
#include <dos.h>
#include <dir.h>
main()
{
int gd = DETECT,gm;
int maxx,maxy,x,y,button,i,j,x2,x1,y2,y1;
int cor[60][2],f=1,hour,min,sec,l,dat,mont,yea;
struct arccoordstype arcinfo;
struct time t;
struct date d;
char mm[80],mf[80],m[50],n[5];
char
mon[12]
[4]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
initmouse();
showmouseptr();
initgraph(&gd,&gm,"c:\turboc\bgi.arc");
maxx=getmaxx();
maxy=getmaxy();
/*textcolor(0);*/
setviewport(1,1,getmaxx()-2,getmaxy()-2,1);
showmouseptr();
restrictmouseptr(350,20,600,70);
circle(maxx/2,maxy/2,100);
putpixel(maxx/2,maxy/2,3);
setfillstyle(0,0);
j=90;
setcolor(0);
cleardevice();
setfillstyle(1,14);
bar(390,55,440,70);
setfillstyle(1,14);
bar(460,55,500,70);
setfillstyle(1,14);
bar(390,30,460,45);
setfillstyle(1,14);
bar(466,30,540,45);
j=30;
setfillstyle(1,12);
bar(180,100,465,387);
setfillstyle(1,0);
bar(185,104,460,383);
while(f<13)
{
if (i<=90) {i=90-j;} else { i=360-(j-90);}
setcolor(0);
arc(maxx/2,maxy/2,90,i,125);
109
C Programs By VINOD
getarccoords(&arcinfo);
setcolor(14);
settextstyle(DEFAULT_FONT, HORIZ_DIR,2);
if (f<=5) {sprintf(n,"%d",f);outtextxy(arcinfo.xend+2,arcinfo.yend,n);}
else if ((f>=7)&&(f<12))
{sprintf(n,"%d",f);outtextxy(arcinfo.xend-7,arcinfo.yend,n);}
else if
(f==12){sprintf(n,"%d",f);outtextxy(arcinfo.xstart-10,arcinfo.ystart,n);}
else if (f==6) {
sprintf(n,"%d",f);outtextxy(arcinfo.x-17,arcinfo.y+120,n);}
j+=30;
f++;
}
setcolor(13);
sprintf(mm,"Exit");
outtextxy(550,35,mm);
settextstyle(DEFAULT_FONT,0,1);
sprintf(mm,"Done by:");
outtextxy(400,435,mm);
settextstyle(DEFAULT_FONT, HORIZ_DIR,2);
sprintf(mm,"Ajith.V.V");
outtextxy(470,445,mm);
settextstyle(DEFAULT_FONT, HORIZ_DIR,0);
outtextxy(400,60,"Time Date");
sprintf(mm,"SET-TIME");
outtextxy(395,35,mm);
sprintf(mm,"SET-DATE");
outtextxy(470,35,mm);
f=0;
while(1)
{
getmousepos(&button,&p,&q);
getdate(&d);
gettime(&t);
/*outer*/
setfillstyle(1,15);
pieslice(maxx/2,maxy/2,0,360,5);
setfillstyle(1,12);
bar(180,100,184,387);
bar(461,100,465,387);
bar(180,100,465,105);
bar(180,385,465,387);
bar(200,390,445,400);
bar(180,400,465,405);
/*hour*/
if (t.ti_hour>13) {t.ti_hour = t.ti_hour - 12;}
if (t.ti_min==0) {i=(t.ti_hour*30);} else
{i=((t.ti_hour*30)+((t.ti_min/12)*6));}
if (i>=90) {j=360-(i-90);}
else {j=90-i;}
textcolor(0);
setcolor(0);
arc(maxx/2,maxy/2,j,90,50);
getarccoords(&arcinfo);
110
C Programs By VINOD
if (((t.ti_hour==0)||(t.ti_hour==12))&&(t.ti_min<=11))
{
setcolor(0);
line(maxx/2,maxy/2,x1,y1);
setcolor(3);
line(maxx/2,maxy/2,maxx/2,maxy/2-50);
x1=0;y1=0;
x1=maxx/2;
y1=maxy/2-50;
}
else
{
setcolor(0);
line(maxx/2,maxy/2,x1,y1);
setcolor(3);
line(maxx/2,maxy/2,arcinfo.xstart,arcinfo.ystart);
x1=arcinfo.xstart;
y1=arcinfo.ystart;
}
/*hour*/
/*minutr*/
i=(t.ti_min*6);
if (i>=90) {j=360-(i-90);}
else {j=90-i;}
textcolor(0);
setcolor(0);
arc(maxx/2,maxy/2,j,90,90);
getarccoords(&arcinfo);
if (t.ti_min==0)
{
setcolor(0);
line(maxx/2,maxy/2,x2,y2);
setcolor(2);
line(maxx/2,maxy/2,maxx/2,maxy/2-80);
x2=0;y2=0;
x2=maxx/2;
y2=maxy/2-80;
}
else
{
setcolor(0);
line(maxx/2,maxy/2,x2,y2);
setcolor(2);
line(maxx/2,maxy/2,arcinfo.xstart,arcinfo.ystart);
x2=arcinfo.xstart;
y2=arcinfo.ystart;
}
/*minute*/
/*seconds*/
i=(t.ti_sec*6);
if (i>=90) {j=360-(i-90);}
else {j=90-i;}
textcolor(0);
setcolor(0);
arc(maxx/2,maxy/2,j,90,100);
getarccoords(&arcinfo);
111
C Programs By VINOD
setcolor(5);
rectangle(185,104,460,383);
setcolor(15);
/*setcolor(4);*/
if (t.ti_sec==0)
{
setcolor(0);
line(maxx/2,maxy/2,x,y);
setcolor(15);
/*setcolor(4);*/
line(maxx/2,maxy/2,maxx/2,maxy/2-100);
x=0;y=0;
x=maxx/2;
y=maxy/2-100;
}
else
{
setcolor(0);
line(maxx/2,maxy/2,x,y);
setcolor(15);
/*setcolor(4);*/
line(maxx/2,maxy/2,arcinfo.xstart,arcinfo.ystart);
x=arcinfo.xstart;
y=arcinfo.ystart;
}
press();
getmousepos(&button,&p,&q);
if ((p>=390)&&(p<=440)&&(q>=55)&&(q<=70)&&((button & 1)==1))
{
f=f^1;
if (f==1)
{
l=3;
}
else
{
l=0;
gotoxy(38,20);
printf(" ");
}
}
if (l==3)
{
gotoxy(38,20);
printf("%d:%d:%d",t.ti_hour,t.ti_min,t.ti_sec);
}
press();
getmousepos(&button,&p,&q);
if ((p>=460)&&(p<=500)&&(q>=55)&&(q<=70)&&((button & 1)==1))
{
f=f^1;
if (f==1)
{
112
C Programs By VINOD
l=5;
}
else
{
l=0;
gotoxy(36,12);
printf(" ");
}
}
if (l==5)
{
gotoxy(36,12);
printf("%d,%s %d ",d.da_day,mon[d.da_mon-1],d.da_year);
}
if (t.ti_min==0)
{
sound(2000);
}
if (t.ti_sec>=2)
{nosound();}
press();
getmousepos(&button,&p,&q);
if ((p>=550)&&(p<=650)&&(q>=33)&&(q<=50)&&((button & 1)==1)) {goto
end;}
/*set time*/
if ((p>=390)&&(p<=460)&&(q>=30)&&(q<=45)&&((button & 1)==1))
{
gotoxy(1,22);
printf("Enter :");
gotoxy(1,23);
printf("Hour[24]:");scanf("%d",&hour);
gotoxy(1,24);
printf("Minute :");scanf("%d",&min);
gotoxy(1,25);
printf("Second :");scanf("%d",&sec);
if (hour!=24)
{t.ti_hour = hour;} else {t.ti_hour = 0;}
t.ti_min = min;
t.ti_sec = sec;
settime(&t);
gotoxy(1,22);
printf(" ");
gotoxy(1,23);
printf(" ");
gotoxy(1,24);
printf(" ");
gotoxy(1,25);
printf(" ");
}
/*set date*/
if ((p>=350)&&(p<=510)&&(q>=35)&&(q<=45)&&((button & 1)==1))
{
gotoxy(1,22);
113
C Programs By VINOD
printf("Enter :");
gotoxy(1,23);
printf("date :");scanf("%d",&dat);
gotoxy(1,24);
printf("Month :");scanf("%d",&mont);
gotoxy(1,25);
printf("Year :");scanf("%d",&yea);
d.da_day=dat;
d.da_mon=mont;
d.da_year=yea;
setdate(&d);
gotoxy(1,22);
printf(" ");
gotoxy(1,23);
printf(" ");
gotoxy(1,24);
printf(" ");
gotoxy(1,25);
printf(" ");
}
/*while end*/
}
end:
closegraph();
restorecrtmode();
/*program end*/
return 0;
}
initmouse()
{
i.x.ax = 0;
int86(0x33,&i,&o);
return (o.x.ax);
}
showmouseptr()
{
i.x.ax = 1;
int86(0x33,&i,&o);
return 0;
}
hidemouseptr()
{
i.x.ax = 2;
int86(0x33,&i,&o);
return 0;
}
114
C Programs By VINOD
int86 (0x33,&i,&o);
i.x.ax = 8;
i.x.cx = y1;
i.x.dx = y2;
int86 (0x33,&i,&o);
return 0;
}
press()
{
while ((button & 1)==1)
{
getmousepos(&button,&p,&q);}
return 0;
}
#include<stdio.h>
#include<conio.h>
void main(void)
{
int i,j,k,n;
clrscr();
i=0;
j=1;
printf("%d %d ",i,j);
for(n=0;n<=5;n++)
{
k=i+j;
i=j;
j=k;
printf("%d ",k);
}
getch();
}
115
C Programs By VINOD
/*Vertical Histogram*/
#include<stdio.h>
#define MAXWL 20 /* Maximum length of a word */
#define MAXNO 25 /* Maximum No of words in a sentence */
void main(void)
{
int word[MAXNO];
int i,c,j,nc,nw;
for(i=0;i<MAXNO;++i)
word[i]=0;
nc = nw = 0;
116
C Programs By VINOD
}
putchar(' ');
}
getch();
}
#include<stdio.h>
#include<stdlib.h>
int lev=-1,n,val[50],a[50];
void main()
{
int i,j;
clrscr();
printf("Enter howmany numbers
");
scanf("%d",&n);
for(i=0;i<n;i++)
{
val[i]=0;
j=i+1;
scanf("%d",&a[j]);
}
visit(0);
getch();
}
visit(int k)
{
int i;
val[k]=++lev;
if(lev==n)
{
for(i=0;i<n;i++)
printf("%2d",a[val[i]]);
printf(" ");
}
for(i=0;i<n;i++)
if(val[i]==0)
visit(i);
lev--;
val[k]=0;
}
WORK OUT
/*Simple Account software*/
#include<graphics.h>
#include<dos.h>
#include<alloc.h>
#include<stdio.h>
117
C Programs By VINOD
#include<string.h>
Record","6.Exit"};
main()
{
int gd=DETECT,gm,choice=1,width=0,i,count,sr=0;
char **buffer;
FILE *m,*t;
char sname[20];
long int size;
char mrec;
struct cust
{
char name[20];
int accno;
float balance;
};
struct cust s;
m=fopen("C:\record.txt","rb+");
if(m==NULL)
{
t=fopen("C:\record.txt","wb+");
if(t==NULL)
{ printf("Error in opening file ");
exit();
}
}
size=sizeof(s);
initgraph(&gd,&gm,"C:\turboc\Bgi.arc");
setbkcolor(1);
setcolor(11);
if(initmouse()==0)
{
printf("Mouse driver not loaded...");
exit();
}
count=sizeof(menu)/sizeof(char *);
settextstyle(TRIPLEX_FONT,0,3);
displaymenu(menu,count,10,10);
for(i=0;i<count;i++)
{
if(textwidth(menu[i])>width)
width=textwidth(menu[i]);
}
118
C Programs By VINOD
/* movemouseptr(&x1,&y1);*/
buffer=malloc(sizeof(menu));
savemenu(menu,buffer,width,count,10,10);
showmouseptr();
while (1)
{ displaymenu(menu,count,10,10);
choice=getresponse(menu,buffer,width,count,10,10);
gotoxy(50,15);
hidemouseptr();
switch (choice)
{
case 1 : cleardevice();
fseek(m,0,SEEK_END);
mrec='y';
gotoxy(1,1);
while(mrec=='y')
{
printf("Enter the Name of the Custumer ");
scanf("%s",s.name);
printf("Enter the Acc.no of the Custumer ");
scanf("%d",&s.accno);
printf("Enter the Balance of the Custumer ");
scanf("%f",&s.balance);
fwrite(&s,size,1,m);
printf("Are there more Records (Y/N)");
fflush(stdin);
mrec=getche();
}
printf("Press any key to go back to menu");
cleardevice();
break;
case 2: cleardevice();
rewind(m);
gotoxy(1,1);
printf("Name Acc.No Ammount Due");
sr=0;
if(fread(&s,size,1,m)==1)
{ rewind(m);
while(fread(&s,size,1,m)==1)
{
printf("%30s%12d%23.2f",s.name,s.accno,s.balance);
sr++;
}
} else
printf(" There is no record to Display");
printf("There are %d Records",sr);
printf("Press any key to go back to menu");
getch();
cleardevice();
break;
119
C Programs By VINOD
case 3: clearviewport();
mrec='y';
gotoxy(1,1);
while(mrec=='y')
{
printf("Enter the name of Customer whose rec. is to be modified");
scanf("%s",sname);
/* gets(sname);*/
rewind(m);
while (fread(&s,size,1,m)==1)
{ sr=0;
if( strcmp (s.name,sname)==0)
{ sr=1;
/* printf("Enter new name,Acc.no,Balance ");*/
/* scanf("%s%d%f",s.name,&s.rollno,&s.percent);*/
printf("Enter the new Name of the Custumer ");
scanf("%s",s.name);
/*gets(s.name);*/
fseek(m,-size,SEEK_CUR);
fwrite(&s,size,1,m);
break;
}
}
if(sr==0)
printf("Record %s is not found",sname);
printf("Modify more records (Y/N)");
fflush(stdin);
mrec=getche();
}
clearviewport();
break;
case 4: clearviewport();
mrec='y';
gotoxy(1,1);
while(mrec=='y')
{
printf("Enter the name of the Customer to delete the rec ");
scanf("%s",sname);
/* gets(sname);*/
t=fopen("C:\stemp.txt","wb");
rewind (m);
while(fread(&s,size,1,m)==1)
{
if(strcmp(s.name,sname)!=0)
fwrite(&s,size,1,t);
120
C Programs By VINOD
}
fclose(m);
fclose(t);
remove("C:\record.txt");
rename("C:\stemp.txt","C:\record.txt");
m=fopen("C:\record.txt","rb+");
}
clearviewport();
break;
case 6:
fclose(m);
exit();
121
C Programs By VINOD
showmouseptr();
}
getch();
}
h=textheight(menu[0]);
for(i=0;i<count;i++)
outtextxy(x1,y1+i*(h+5),menu[i]);
}
h=textheight(menu[0]);
for(i=0;i<count;i++)
{
x2=x1+width;
yy1=y1+i*(h+5);
yy2=y1+(i+1)*(h+5);
area=imagesize(x1,yy1,x2,yy2);
buffer[i]=malloc(area);
getimage(x1,yy1,x2,yy2,buffer[i]);
}
}
h=textheight(menu[0]);
y2=y1+count*(h+5);
x2=x1+width;
rectangle(x1-5,y1-5,x2+5,y2+5);
while(1)
{
getmousepos(&button,&x,&y);
if (x>=x1&&x<=x2&&y>=y1&&y<=y2)
{ in=1;
for(i=1;i<=count;i++)
{
if(y<=y1+i*(h+5))
{ choice=i;
122
C Programs By VINOD
break;
}
}
if(prevchoice!=choice)
{
hidemouseptr();
highlight(buffer,choice,h,x1,y1);
if(prevchoice)
dehighlight(buffer,prevchoice,h,x1,y1);
prevchoice=choice;
showmouseptr();
}
if((button & 1)==1)
{
while ((button & 1)==1)
getmousepos(&button,&x,&y);
if(x>=x1&&x<=x2&&y>=y1&&y<=y2)
return(choice);
}
}
else
{
if( in ==1)
{
in=0;
prevchoice=0;
hidemouseptr();
dehighlight(buffer,choice,h,x1,y1);
showmouseptr();
}
}
}
}
/* initmouse */
initmouse()
{
i.x.ax=0;
int86 (0x33,&i,&o);
return(o.x.ax);
123
C Programs By VINOD
hidemouseptr()
{
i.x.ax=2;
int86(0x33,&i,&o);
}
124
C Programs By VINOD
For example, a 4x3 array of T (where "T" is some data type) may
be declared by: "T mat[4][3]", and described by the following
scheme:
+-----+-----+-----+
mat == mat[0] ---> | a00 | a01 | a02 |
+-----+-----+-----+
125
C Programs By VINOD
+-----+-----+-----+
mat[1] ---> | a10 | a11 | a12 |
+-----+-----+-----+
+-----+-----+-----+
mat[2] ---> | a20 | a21 | a22 |
+-----+-----+-----+
+-----+-----+-----+
mat[3] ---> | a30 | a31 | a32 |
+-----+-----+-----+
The array elements are stored in memory row after row, so the
array equation for element "mat[m][n]" of type T is:
address(mat[i][j]) = address(mat[0][0]) +
i * n * size(T) +
j * size(T)
address(mat[i][j]) = address(mat[0][0]) +
i * size(row of T) +
j * size(T)
A few remarks:
a * x**2 + b * x + c = (a * x + b) * x + c
4) The number of rows doesn't enter into the array equation, you don't
need it to compute the address of an element. That is the reason
you don't have to specify the first dimension in a routine that is
being passed a 2D array, just like in Fortran's assumed-size arrays.
126
C Programs By VINOD
K&R tried to create a unified treatment of arrays and pointers, one that
would expose rather than hide the array equation in the compiler's code.
They found an elegant solution, albeit a bit complicated. The "ugly"
array equation is replaced in their formulation by four rules:
xxx[i] = *(xxx # i)
127
C Programs By VINOD
We have now one pointer addition left, using again the "decay convention",
the 1D array "row of T" becomes a pointer to its first element, i.e.
"pointer to T". We perform the pointer addition, and get the third term
of the array equation:
Remember that "mat" actually points to the first element of the array,
so we can write:
address(mat[i][j]) = address(mat[0][0]) +
i * sizeof(row) +
j * sizeof(T)
ptr2 = &ptr1;
ptr1 = (type *)mat;
128
C Programs By VINOD
but that wouldn't work either, the information on the array "width" (n),
is lost, and we would get right only the first row, then we will have
again wild memory accesses.
An example program:
#include <stdio.h>
#include <stdlib.h>
main()
{
long mat[5][5], **ptr;
mat[0][0] = 3;
ptr = (long **)mat;
return;
}
mat 7FDF6310
ptr 7FDF6310
mat[0][0] 3
&mat[0][0] 7FDF6310
&ptr[0][0] 3
129
C Programs By VINOD
Various ways to declare and use such an array are presented by examples
with an array made of 3x3 shorts (INTEGER*2). All 5 methods work on
a VAX/VMS machine with DECC.
#include <stdio.h>
#include <stdlib.h>
int func1();
int func2();
int func3();
int func4();
int func5();
main()
{
short mat[3][3],i,j;
func1(mat);
func2(mat);
func3(mat);
func4(mat);
func5(mat);
}
/*
Method #1 (No tricks, just an array with empty first dimension)
===============================================================
You don't have to specify the first dimension!
*/
130
C Programs By VINOD
printf("\n");
for(j = 0 ; j < 3 ; j++)
{
printf("%5.2d", mat[i][j]);
}
}
printf("\n");
return;
}
/*
Method #2 (pointer to array, second dimension is explicitly specified)
======================================================================
*/
return;
}
/*
Method #3 (Using a single pointer, the array is "flattened")
============================================================
With this method you can create general-purpose routines.
The dimensions doesn't appear in any declaration, so you
can add them to the formal argument list.
131
C Programs By VINOD
}
printf("\n");
return;
}
/*
Method #4 (double pointer, using an auxiliary array of pointers)
================================================================
With this method you can create general-purpose routines,
if you allocate "index" at run-time.
return;
}
/*
Method #5 (single pointer, using an auxiliary array of pointers)
================================================================
*/
132
C Programs By VINOD
printf("\n");
return;
}
133