Monday 27 August 2012

sample c program to practice before tech interview

 These are the collection of c programs that one must practice before going to technical interview......

1. Program to calculate the factorial of a number
2. Program to calculate the sum digits of a number
3. Program to reverse a number
4. Program to check the number is strong number or not.
5. Program to calculate the prime factors of a numbers
6. Program to check given number is Armstrong or not
7. Program to check given number is palindrome or not
8. Program to add between any two numbers using loop
9. Program to calculate daily expenditure if monthly expenditure is given using loop.
10. Program to count number of bits are set to 1 in an integer.
11. Program to calculate G.C.D of any two numbers
12. Program to calculate L.C.M of two numbers.
13. Program to calculate Fibonacci series
14. Program to calculate string palindrome
15. Program to check the number is Prime number or not
16. Program to find largest number in an array
17. Program to find Second largest number in an array
18. Program to remove duplicate elements in an array
19. Program to convert decimal to binary
20. Program to convert binary to decimal
21. Program to check the number is perfect number or not.
22. Program to find generic root of a number.
23. Program to check a year is leap year or not.
24. Program to reverse a string
25. Program to add a sub-string in a string
26. Program to traverse a string in reverse order
27. Program to count number of vowels , digits,characters and word present in string.
28. Program to add between two matrix
29. Program to multiplication between two matrix
30. Program to transpose a matrix
31. Program to check a matrix is sparse matrix or not
32. Program to calculate Amicable pairs from 1 to 1000
33. Program to calculate Sum of the series 1+2+3+---------+n
34. Program to find area triangle
35. Program for Bubble sort
36. Program for Selection sort
37. Program for insertion sort
38. Program for Quick Sort
39. Program for Merge Sort
40. Program for Sequential search using array
41. Program for Sequential search using linked list
42. Program for Binary search using array
43. Program for Binary search using linked list
44. Program to implement stack using linked list
45. Program to convert infix to prefix notation
46. Program to Evaluate postfix notation
47. Program to implement Queue using linked list
48. Program for Dqueue
49. Program for Priority Queue
50. Program to traverse linked list in reverse order.
51. Program to display the contents of a file using command line argument
52. Calculate the age of a person after giving the date of birth
53. Calculate the average marks of student looking at the following table
54. Calculate the amount to be paid after giving the total time.
55. Program to convert upper case to lower case
56. Program to calculate the power of a number
57. INSERT AN ELEMENT IN AN ARRAY AT DESIRED POSITION
58. program to calculate the sum of the following series
1 - x + x2/2! + x3/3! --------to nth term
59. find the weekday of a particular date(ex-6 sep 2010 (Monday)
60.Write a program to convert given ip address 192.168.3.35 into 192.168.003.035
61.Calculate the net salary looking at the following table
62. Write a program to display : 
*
***
*****
*******
*********
******
***
*
63. Write a program which will store roll name and age in student structure and address telephone no. In address structure. Implement the nested structure which will store information of ten students and their address and organize data in descending order by their roll no.
64. Write a program to store the information of student such as roll, name and course to a file using read & write system call.
65. Program for DFS
66. Program for BFS
67. Program to search an element using hash table
68. Program to search a string from hast table
69. Program to search an element using hash table using chaining
70. Shortest path using warshal's algorithm
71. Shortest path using Dijkstra's algorithm
72. Find the path matrix of Graph
73. Program to read the current date and time
74. Program to read all files from current directory

1. Program to calculate the factorial of a number

main()
{
int x,n;
printf("Enter a number :");
scanf("%d",&n);
x=fact(n);
printf("%d",x);
}
int fact(int n)
{
int f=1;
while(n>0)
{
f=f*n;
n--;
}
return f;
}

2. Program to calculate the sum digits of a number

main()
{
int x,n;
printf("Enter a number :");
scanf("%d",&n);
x=sum_digit(n);
printf("%d",x);
}
int sum_digit(int n)
{
int s=0;
while(n>0)
{
s=s + n%10;
n=n/10;
}
return s;
}

3. Program to reverse a number

main()
{
int x,n;
printf("Enter a number :");
scanf("%d",&n);
x=reverse(n);
printf("%d",x);
}
int reverse(int n)
{
int s=0;
while(n>0)
{
s=s *10 + n%10;
n=n/10;
}
return s;
}

4. Program to check the number is strong number or not.

main()
{
int x,n;
printf("Enter a number :");
scanf("%d",&n);
x=strong(n);
if(x==n)
printf("Strong");
else
printf("Not strong");
}
int strong(int n)
{
int s=0,r,f;
while(n>0)
{
r=n%10;
f=fact(r);
s=s+f;
n=n/10;
}
return s;
}
int fact(int n)
{
int f=1;
while(n>0)
{
f=f*n;
n--;
}
return f;
}
5. Program to calculate the prime factors of a numbers
main()
{
int x,n;
printf("Enter a number :");
scanf("%d",&n);
prime_factors(n);
}
int prime_factors(int n)
{
int i=1,k;
while(i<=n)
{
if(n%i==0)
{
k=check_prime(i);
if(k!=0)
printf("%d ",k);
}
i++;
}
}
int check_prime(int n)
{
int i=1;
int c=0;
while(i<=n)
{
if(n%i==0)
c++;
i++;
}
if(c==2)
return n;
else
return 0;
}

6. Program to check given number is Armstrong or not

main()
{
int n,x;
printf("Enter a number:");
scanf("%d",&n);
x=armstrong(n);
if(x==n)
printf("Arm strong");
else
printf("Not arm strong");
}
int armstrong(int num)
{
int sum=0,r;
while(num!=0)
{
r=num%10;
num=num/10;
sum=sum+(r*r*r);
}
return sum;
}

7. Program to check given number is palindrome or not

main()
{
int n,x;
printf("Enter a number:");
scanf("%d",&n);
x=palendrome(n);
if(x==n)
printf("Palendrome ");
else
printf("Not palendrome ");
}
int palendrome(int num)
{
int r=0;
while(num>0)
{
r=r* 10 + num%10;
num=num/10;
}
return r;
}

8. Program to add between any two numbers using loop

main()
{
int x;
int a,b;
printf("Enter any two numbers :");
scanf("%d%d",&a,&b);
x=add(a,b);
printf("%d ",x);
}
int add(int a,int b)
{
while(a>0)
{
b++;
a--;
}
return b;
}

9. Program to calculate daily expenditure if monthly expenditure is given using loop.

main()
{
int x,n;
printf("Enter monthely expenditure :");
scanf("%d",&n);
x=daily_exp(n);
printf("%d ",x);
}
int daily_exp(int n)
{
int c=0;
while(n>0)
{
c++;
n=n-30;
}
return c;

}

10. Program to count number of bits are set to 1 in an integer.

main()
{
int x,n;
printf("Enter a number :");
scanf("%d",&n);
x=bit_count(n);
printf("%d ",x);
}
int bit_count(int n)
{
int c=0;
while(n>0)
{
c++;
n=n&n-1;
}
return c;
}

11. Program to calculate G.C.D of any two numbers

main()
{
int n1,n2,x;
printf("Enter two numbers:");
scanf("%d%d",&n1,&n2);
x=gcd(n1,n2);
printf("%d ",x);
}
int gcd(int n1,int n2)
{
while(n1!=n2)
{
if(n1>n2)
n1=n1-n2;
else
n2=n2-n1;
}
return n1;
}

12. Program to calculate L.C.M of two numbers.

main()
{
int n1,n2,x;
printf("Enter two numbers:");
scanf("%d%d",&n1,&n2);
x=lcm(n1,n2);
printf("%d ",x);
}
int lcm(int n1,int n2)
{
int x,y;
x=n1,y=n2;
while(n1!=n2)
{
if(n1>n2)
n1=n1-n2;
else
n2=n2-n1;
}
return x*y/n1;
}

13. Program to calculate Fibonacci series

main()
{
int n;
printf("Enter the number range:");
scanf("%d",&n);
fibo(n);
}
int fibo(int n)
{
int i=0,j=1,k=2,r,f;
printf("%d %d ", i,j);
while(k<n)
{
f=i+j;
i=j;
j=f;
printf(" %d",j);
k++;
}
}

14. Program to calculate string palindrome

main()
{
char x[100],y[100];
printf("Enter a string :");
scanf("%s",x);
strcpy(y,x);
check_palindrome(x);
if(strcmp(x,y)==0)
printf("Palindrome");
else
printf("Not Palindrome");
}
int check_palindrome(char *x)
{
int len=strlen(x);
int i;
char temp;
for(i=0;i<len/2;i++)
{
temp=x[i];
x[i]=x[len-i-1];
x[len-i-1]=temp;
}
}

15. Program to check the number is Prime number or not

main()
{
int n,k;
printf("Enter a number:");
scanf("%d",&n);
k=check_prime(n);
if(k==2)
printf("Prime");
else
printf("Not prime");
}
int check_prime(int n)
{
int i=1,c=0;
while(i<=n)
{
if(n%i==0)
c++;
i++;
}
return c;
}

16. Program to find largest number in an array

main()
{
int a[]={15,67,25,90,40};
int k;
k=large_number(a);
printf("%d ",k);
}
int large_number(int a[5])
{
int i,big;
big=a[0];
for(i=1;i<5;i++)
{
if(big<a[i])
big=a[i];
}
return big;
}

17. Program to find Second largest number in an array

main()
{
int a[]={15,67,25,90,40};
int k;
k=large_number(a);
printf("%d ",k);
}
int large_number(int un[5])
{
int big1,big2;
int i;
big1 = un[0];
for ( i=1;i<5;++i )
if ( big1 < un[i] )
big1 = un[i];
if ( big1!=un[0] )
big2=un[0];
else
big2=un[1];
for(i=1; i<5;++i )
if (big1!=un[i] && big2 < un[i] )
big2=un[i];
return big2;
}

18. Program to remove duplicate elements in an array

main()
{
int i,k;
int x[10]={5,7,2,8,9,3,3,6,7,20};
k=remove_duplicate(x);
for(i=0;i<k;i++)
{
printf(" %d",x[i]);
}
}
int remove_duplicate(int p[10])
{
int size=10,i,j,k;
for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
{
if(i==j)
{
continue;
}
else
if(*(p+i)==*(p+j))
{
k=j;
size--;
while(k < size)
{
*(p+k)=*(p+k+1);
k++;
}
j=0;
}
}
}
return size;
}

19. Program to convert from decimal to binary

main()
{
int n;
printf("Enter a number :");
scanf("%d",&n);
decimal_binary(n);
}
int decimal_binary(int n)
{
int m,no=0,a=1,rem;
m=n;
while(n!=0)
{
rem=n%2;
no=no+rem*a;
n=n/2;
a=a*10;
}
printf("%d",no);
}

20. Program to convert binary to decimal

main()
{
int n;
printf("Enter data in binary format :");
scanf("%d",&n);
binary_decimal(n);
}
int binary_decimal(int n)
{
int j=1,rem,n1=0;
while(n!=0)
{
rem=n%10;
n1=n1+rem*j;
j=j*2;
n=n/10;
}
printf("%d",n1);
}

21. Program to check the number is perfect number or not.

main()
{
int n,x;
printf("Enter a number:");
scanf("%d",&n);
x=check_perfect(n);
if(x==n)
printf("Perfect number :");
else
printf("Not a perfect number :");
}
int check_perfect(int n)
{
int s=0,i=1;
while(i<n)
{
if(n%i==0)
s=s+i;
i++;
}
return s;
}

22.Program to find generic root of a number.

main()
{
int n,k;
printf("Enter a number");
scanf("%d",&n);
k=generic(n);
printf("%d",k);
}
int generic(int n)
{
int sum,r;
if(n<10)
return n;
while(n>10)
{
sum=0;
while(n!=0)
{
r=n%10;
n=n/10;
sum+=r;
}
if(sum>10)
n=sum;
else
break;
}
return sum;
}

23. Program to check a year is leap year or not.

main()
{
int year;
printf("Enter the year :\n");
scanf("%d",&year);
if((year % 400==0 )|| ((year % 4==0)&& (year %100!=0)))
printf("Leap Year ");
else
printf("Not leap year");
}

24. Program to reverse a string

main()
{
char x[100];
printf("Enter a string :");
gets(x);
strrev(x);
printf("%s",x);
}
int strrev(char *x)
{
int len=strlen(x);
int i;
char temp;
for(i=0;i<len/2;i++)
{
temp=x[i];
x[i]=x[len-i-1];
x[len-i-1]=temp;
}
}

25. Program to add a sub-string in a string

main()
{
char x[100],y[20];
int pos;
printf("Enter string :");
gets(x);
printf("Enter substring:");
scanf("%s",y);
printf("Enter position:");
scanf("%d",&pos);
add_substring(x,y,pos);
}
int add_substring(char *x,char *y,int pos)
{
char z[100];
int i=0,j=0,k;
memset(z,0,sizeof(z));
while(i<pos)
{
z[i]=*x;
x++;
i++;
}
while(*y!=0)
{
z[i]=*y;
i++;
y++;
}
z[i]=' ';
i++;
while(*x!=0)
{
z[i]=*x;
i++;
x++;
}
z[i]=0;
printf("%s",z);
}

26. Program to traverse a string in reverse order

main()
{
char x[100];
printf("Enter a string :");
gets(x);
int len=strlen(x)-1;
while(len>=0)
{
printf("%c",x[len]);
len--;
}
}

27. Program to count number of words,vowels,digits and space present in string.

main()
{
int word=0,space=0,digit=0,vowels=0,i;
char x[100];
printf("Enter a string :");
gets(x);
for(i=0;i<strlen(x);i++)
{
if(x[i]=='a' || x[i]=='A' || x[i]=='e' || x[i]=='E' || x[i]=='i' || x[i]=='I'
|| x[i]=='o' || x[i]=='O' || x[i]=='u' || x[i]=='U')
vowels++;
if(x[i]>=48 && x[i]<=57)
digit++;
if(x[i]==32) //space
space++;
}
word=space+1;
printf("%d %d %d %d\n",word,space,digit,vowels);
}

28. Program to add between two matrix

main()
{
int a[3][3]={
1,2,1,
1,2,2,
3,2,1
};
int b[3][3]={
2,2,1,
1,1,1,
2,3,1
};
int c[3][3];
int i,j,k,sum=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c[i][j]=a[i][j]*b[i][j];
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",c[i][j]);
}
printf("\n");
}
}

29. Program for multiplication between two matrix

main()
{
int a[3][3]={
1,2,1,
1,2,2,
3,2,1
};
int b[3][3]={
2,2,1,
1,1,1,
2,3,1
};
int c[3][3];
int i,j,k,sum=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c[i][j]=0;
for(k=0;k<3;k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",c[i][j]);
}
printf("\n");
}
}

30. Program to transpose a matrix

main()
{
int a[3][5]={
1,4,5,6,7,
2,3,4,1,5,
9,5,3,1,4
};
int b[5][3];
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
b[j][i]=a[i][j];
}
}
for(i=0;i<5;i++)
{
for(j=0;j<3;j++)
{
printf("%d",b[i][j]);
}
printf("\n");
}
}

31. Program to check a matrix is sparse matrix or not

main()
{
int mat[3][5]={
1,0,2,3,0,
0,1,0,1,0,
0,0,0,1,0
};
int i,j,nzero=0,zero=0;
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
if(mat[i][j]!=0)
nzero++;
else
zero++;
}
}
if(zero>nzero)
printf("The matrix is sparse matrix");
else
printf("Not a sparse matrix");
}

32. Program to calculate Amicable pairs from 1 to 1000

#include "stdio.h"
main()
{
int n,k;
int i=1,s1=0,s2=0;
for(k=1;k<=1000;k++)
{
n=k;
while(i<n)
{
if(n%i==0)
s1=s1+i;
i++;
}
i=1;
if(s1==n)
continue;
while(i<s1)
{
if(s1%i==0)
s2=s2+i;
i++;
}
if(n==s2)
printf("%d \n",n);
s1=0;
s2=0;
}
}

33. Program to calculate Sum of the series 1+2+3+---------+n

main()
{
int r;
printf("Enter the number range: ");
scanf("%d",&r);
printf("%d",(r*(r+1))/2);
}

34. Program to find area triangle

#include "math.h"
int main()
{
double a,b,c,s;
double area;
printf("Enter the size of triangle :");
scanf("%lf%lf%lf",&a,&b,&c);
s = (a + b + c)/2;
area =sqrt (s*(s-a)*(s-b)*(s-c));
printf("%lf",area);
}

35. Program for Bubble sort

main()
{
int a[5]={4,9,40,2,25};
int i;
bubble_sort(a);
for(i=0;i<5;i++)
printf("%d ",a[i]);
}
int bubble_sort(int a[5])
{
int i,j,temp;
for(i=0;i<5;i++)
{
for(j=0;j<5-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}

36. Program for Selection sort

main()
{
int a[5]={4,9,40,2,25};
int i;
selection_sort(a);
for(i=0;i<5;i++)
printf("%d ",a[i]);
}
int selection_sort(int a[5])
{
int i,j,temp;
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}

37. Program for Insertion sort

main()
{
int a[5]={4,9,40,2,25};
int i;
insert_sort(a);
for(i=0;i<5;i++)
printf("%d ",a[i]);
}
int insert_sort(int a[5])
{
int i,j,k,temp;
for(i=1;i<5;i++)
{
for(j=0;j<i;j++)
{
if(a[i]<a[j])
{
temp=a[i];
for(k=i;k>j;k--)
{
a[k]=a[k-1];
}
a[j]=temp;
}
}
}
}

38. Program for quick sort

main()
{
int x[5]={5,9,2,20,6};
int i;
quick_sort(x,0,4);
for(i=0;i<5;i++)
printf("%d ",x[i]);
}
quick_sort(int x[10],int first,int last)
{
int pivot,j,temp,i;
if(first<last)
{
pivot=first;
i=first;
j=last;
while(i<j)
{
while(x[i]<=x[pivot]&&i<last)
i++;
while(x[j]>x[pivot])
j--;
if(i<j)
{
temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
temp=x[pivot];
x[pivot]=x[j];
x[j]=temp;
quick_sort(x,first,j-1);
quick_sort(x,j+1,last);
}
}

39. Program for Merge Sort

40. Program for sequential search

main()
{
int a[]={6,5,3,20,55};
int i,flag=0,n;
printf("Enter number to search :");
scanf("%d",&n);
for(i=0;i<5;i++)
{
if(a[i]==n)
{
flag=1;
break;
}
}
if(flag==1)
printf("Found\n");
else
printf("Not found\n");
}

41. Program for Sequential search using linked list

struct xxx
{
int data;
struct xxx *ad;
};
struct xxx *create_linkedlist();
main()
{
int k;
struct xxx *b;
b=create_linkedlist();
k=search(b);
if(k==1)
printf("Found ");
else
printf("Not found\n");
}
struct xxx *create_linkedlist()
{
char ch[10];
struct xxx *p,*q,*r;
p=malloc(sizeof(struct xxx));
printf("Enter data :");
scanf("%d",&p->data);
r=p;
while(1)
{
printf("Do u continue yes/no :");
scanf("%s",ch);
if(strcmp(ch,"no")==0)
break;
q=malloc(sizeof(struct xxx));
p->ad=q;
p=q;
printf("Enter data :");
scanf("%d",&p->data);
}
p->ad=0;
return r;
}
int search(struct xxx *p)
{
int n,flag=0;
printf("Enter number to search :");
scanf("%d",&n);
while(p!=0)
{
if(p->data==n)
{
flag=1;
break;
}
p=p->ad;
}
return flag;
}


42. Binary Search using an Array

void main()
{
int a[10],i,n,m,c=0,l,u,mid;
printf("Enter the size of an array->");
scanf("%d",&n);
printf("\nEnter the elements of the array->");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("\nThe elements of an array are->");
for(i=0;i<n;i++)
{
printf(" %d",a[i]);
}
printf("\nEnter the number to be search->");
scanf("%d",&m);
l=0,u=n-1;
while(l<=u)
{
mid=(l+u)/2;
if(m==a[mid])
{
c=1;
break;
}
else
if(m<a[mid])
{
u=mid-1;
}
else
l=mid+1;
}
if(c==0)
printf("\nThe number is not in the list");
else
printf("\nThe number is found");
}

43. Program for Binary search using linked list

struct xxx
{
int roll;
struct xxx *ad;
};
struct xxx *create();
main()
{
int status;
int u,n;
struct xxx *b;
b=create();
visit(b);
selection_sort(b);
printf("\n");
visit(b);
u=count(b);
printf("Enter number to search :");
scanf("%d",&n);
status=binary_search(b,1,u,n);
if(status==1)
printf("Found\n");
else
printf("Not found\n");
}
int binary_search(struct xxx *p,int l,int u,int n)
{
struct xxx *r=p;
int mid,i,f=0;
while(l<=u && r!=0)
{
mid=(l+u)/2;
for(i=1;i<mid;i++)
{
r=r->ad;
}
if(n==r->roll)
{
f=1;
break;
}
if(n<r->roll)
{ u=mid-1;
}
if(n>r->roll)
{
l=mid+1;
}
r=p;
}
return f;
}
int count(struct xxx *p)
{
int c=0;
while(p!=0)
{
c++;
p=p->ad;
}
return c;
}
int selection_sort(struct xxx *p)
{
struct xxx *q=p->ad;
int temp;
while(p->ad!=0)
{
while(q!=0)
{
if(p->roll>q->roll)
{
temp=p->roll;
p->roll=q->roll;
q->roll=temp;
}
q=q->ad;
}
p=p->ad;
q=p->ad;
}
}
int visit(struct xxx *p)
{
while(p!=0)
{
printf("%d ",p->roll);
p=p->ad;
}
}
struct xxx *create()
{
struct xxx *p,*q,*r;
char ch[10];
p=malloc(sizeof(struct xxx));
r=p;
while(1)
{
printf("Enter roll :");
scanf("%d",&p->roll);
printf("Do u continue yes/No:");
scanf("%s",ch);
if(strcmp(ch,"no")==0)
break;
q=malloc(sizeof(struct xxx));
p->ad=q;
p=q;
}
p->ad=0;
return r;
}

44. Program to implement stack using linked list

struct xxx
{
int roll;
struct xxx *ad;
};
struct xxx *p=0;
main()
{
int x;
do
{
printf("1 for push\n");
printf("2 for pop\n");
printf("0 for stop\n");
printf("Enter choice :");
scanf("%d",&x);
if(x==1)
{
push();
}
else
if(x==2)
{
pop();
}
}while(x!=0);
}
int pop()
{
if(p==0)
{
printf("Stack is empty\n");
return;
}
else
{
printf("%d \n",p->roll);
p=p->ad;
}
}
int push()
{
struct xxx *q;
if(p==0)
{
p=malloc(sizeof(struct xxx));
printf("Enter roll :");
scanf("%d",&p->roll);
p->ad=0;
}
else
{
q=malloc(sizeof(struct xxx));
q->ad=p;
p=q;
printf("Enter roll :");
scanf("%d",&p->roll);
}
}

45. Program to convert infix to prefix notation

struct xxx
{
char data;
struct xxx *ad;
};
main()
{
int len;
struct xxx *opd=0,*opr=0,*q;
char x[50];
char y[50];
int i=0;
printf("Enter Infix expression :");
scanf("%s",x);
char *p=x+strlen(x)-1;
int k1,k2;
for(i=strlen(x)-1;i>=0;i--)
{
if(*p>=48 && *p<=57)
{
if(opd==0)
{
opd=malloc(sizeof(struct xxx));
opd->data=*p;
opd->ad=0;
}
else
{
q=malloc(sizeof(struct xxx));
q->ad=opd;
opd=q;
opd->data=*p;
}
}
else
{
if(opr==0)
{
opr=malloc(sizeof(struct xxx));
opr->data=*p;
opr->ad=0;
}
else
{
k1=check_precedence(*p);
k2=check_precedence(opr->data);
if(k1<=k2)
{
while(k1<=k2 && opr!=0)
{
q=malloc(sizeof(struct xxx));
q->ad=opd;
opd=q;
opd->data=opr->data;
opr=opr->ad;
if(opr==0)
{ opr=malloc(sizeof(struct xxx));
opr->ad=0;
break;
}
k2=check_precedence(opr->data);
}
opr->data=*p;
}
else
{
q=malloc(sizeof(struct xxx));
q->ad=opr;
opr=q;
opr->data=*p;
}
}//else
} //else
p--;
} //for
while(opr!=0)
{
q=malloc(sizeof(struct xxx));
q->ad=opd;
opd=q;
opd->data=opr->data;
opr=opr->ad;
}
memset(y,0,sizeof(y));
i=0;
while(opd!=0)
{
y[i]=opd->data;
i++;
opd=opd->ad;
}
printf("%s ",y);
}
int check_precedence(int m)
{
switch(m)
{
case '+':
case '-':
return 1;
case '/':
case '*':
return 2;
}
}

46. Program to Evaluate postfix notation

struct xxx
{
unsigned char data;
struct xxx *ad;
};
main()
{
unsigned char a,b,c;
struct xxx *st=0,*q;
char x[100];
printf("Enter Post Expression:");
scanf("%s",x);
char *p=x;
while(*p!=0)
{
if(*p>=48 && *p<=57)
{
if(st==0)
{
st=malloc(sizeof(struct xxx));
st->data=*p;
st->ad=0;
}
else
{
q=malloc(sizeof(struct xxx));
q->ad=st;
st=q;
st->data=*p;
}
}
else
{
b=st->data-48;
st=st->ad;
a=st->data-48;
if(*p=='*')
{
c=a*b;
}
else
if(*p=='/')
{
c=a/b;
}
else
if(*p=='+')
{
c=a+b;
}
else
if(*p=='-')
{
c=a-b;
}
st->data=c+48;
}
p++;
}
printf("%d ", st->data-48);
}

47. Program to implement Queue using linked list

#include<stdio.h>
#include<malloc.h>
struct node
{
int info;
struct node *next;
} ;
struct node *front, *rear;
void enqueue(int elt);
int dequeue();
void display();
void main()
{
int ch, elt;
rear = NULL;
front = NULL;
while (1)
{
printf("1 Insert\n");
printf("2 Delete\n");
printf("3 Display\n");
printf("4 Exit\n");
printf("Enter your choice : ");
scanf("%d", &ch);
switch (ch)
{
case 1:
printf("Enter The Element Value\n");
scanf("%d", &elt);
enqueue(elt);
break;
case 2:
elt = dequeue();
printf("The deleted element = %d\n", elt);
break;
case 3:
display();
break;
default:
exit(0);
}
}
}
void enqueue(int elt)
{
struct node *p;
p = (struct node*)malloc(sizeof(struct node));
p->info = elt;
p->next = NULL;
if (rear == NULL || front == NULL)
front = p;
else
rear->next = p;
rear = p;
}
int dequeue()
{
struct node *p;
int elt;
if (front == NULL || rear == NULL)
{
printf("\nUnder Flow");
exit(0);
}
else
{
p = front;
elt = p->info;
front = front->next;
free(p);
}
return (elt);
}
void display()
{
struct node *t;
t = front;
while (front == NULL || rear == NULL)
{
printf("\nQueue is empty");
exit(0);
}
while (t != NULL)
{
printf("->%d", t->info);
t = t->next;
}
}
49. Program for Priority Queue
struct xxx
{
int pr;
struct xxx *ad;
};
struct xxx *p=0;
main()
{
int x;
do
{
printf("1 for add\n");
printf("2 for dele\n");
printf("3 for traverse\n");
printf("0 for stop\n");
printf("Enter choice :");
scanf("%d",&x);
if(x==1)
add();
else
if(x==2)
dele();
else
if(x==3)
trav();
}while(x!=0);
}
int trav()
{
struct xxx *r=p;
while(r!=0)
{
printf("%d ",r->pr);
r=r->ad;
}
}
int add()
{
struct xxx *q,*r,*m;
if(p==0)
{
p=malloc(sizeof(struct xxx));
printf("Enter priority :");
scanf("%d",&p->pr);
p->ad=0;
}
else
{
q=malloc(sizeof(struct xxx));
printf("Enter priority :");
scanf("%d",&q->pr);
if(q->pr <= p->pr)
{
q->ad=p;
p=q;
}
else
{
r=p;
while(q->pr > r->pr)
{
m=r;
if(r->ad==0)
{
r->ad=q;
q->ad=0;
return;
}
r=r->ad;
}
m->ad=q;
q->ad=r;
}
}
}
int dele()
{
struct xxx *r,*m;
r=p;
if(r==0)
{
printf("Stack is empty\n");
exit(0);
}
while(r->ad!=0)
{
m=r;
r=r->ad;
}
free(r);
m->ad=0;
}

50. Traverse a linked list in reverse order

#include <stdio.h>
#define NODES 4
typedef struct list_head {
struct node* head;
struct node* tail;
} list_head;
typedef struct node {
struct node* next;
int value;
} node;
node n[NODES];
list_head init_empty_list()
{
list_head h;
h.head = 0;
h.tail = 0;
return h;
}
list_head init_list()
{
int i;
list_head h;
for (i=0; i<NODES-1; ++i) {
n[i].next = &n[i+1];
n[i].value = i+1;
}
n[NODES-1].next = 0;
n[NODES-1].value = NODES;
h.head = &n[0];
h.tail = &n[NODES-1];
return h;
}
void print_list(list_head h)
{
node* p = h.head;
while (p) {
printf("%d ", p->value);
p = p->next;
}
printf("\n");
}
list_head reverse_list(list_head h)
{
list_head nh;
if ((h.head == 0) || (h.head->next ==0)) {
return h;
}
nh.head = h.head->next;
nh.tail = h.tail;
nh = reverse_list(nh);
h.head->next = 0;
nh.tail->next = h.head;
nh.tail = h.head;
return nh;
}
int main()
{
list_head head;
head = init_list();
print_list(head);
head = reverse_list(head);
print_list(head);
return 0;
}

51. Program to display the contents of a file using command line argument

#include "fcntl.h"
main(int x, char *y[], char *z[])
{
int i;
char ch;
if(x<2)
{
printf("Too few parameters\n");
exit(0);
}
for(i=1;i<x;i++)
{
int k=open(y[i],O_RDONLY);
if(k==-1)
{
printf("File not found\n");
break;
}
while(read(k,&ch,1))
printf("%c",ch);
close(k);
}
}

52. Calculate the age of a person after giving the date of the birth.

#include "time.h"
main()
{
char x[100],y[100];
int dd,mm,yy;
int bd,bm,by;
int nd,nm,ny;
unsigned int t;
struct tm *mytime;
t=time(0);
mytime=localtime(&t);
dd=mytime->tm_mday;
mm=mytime->tm_mon+1;
yy=mytime->tm_year+1900;
printf("Enter birtd day,mon and year :");
scanf("%d%d%d",&bd,&bm,&by);
if(dd>=bd)
nd=dd-bd;
else
if(mm==1 || mm==3 || mm==5 || mm==7 || mm==8 || mm==10 || mm==12)
{
dd=dd+31;
nd=dd-bd;
}
else
if(mm==4 || mm==6 || mm==9 || mm==11)
{
dd=dd+30;
nd=dd-bd;
}
else
if(mm==2)
{
dd=dd+28;
nd=dd-bd;
}
if(mm>=bm)
{
nm=mm-bm;
}
else
{
mm=mm+12;
yy=yy-1;
nm=mm-bm;
}
ny=yy-by;
printf("%d %d %d \n",ny,nm,nd);
}

53. Calculate the average marks of student looking at the following table

p1 p2 p3 average Result
>=60% first
>=50 second
>=40 third
avg=(p1+p2+p3)/3;
where p1,p2 and p3 >=30
main()
{
int p1,p2,p3,avg;
printf("Enter Marks for p1 p2 & p3 : ");
scanf("%d%d%d",&p1,&p2,&p3);
avg=(p1+p2+p3)/3;
if(p1>=30 && p2>=30 && p3>=30)
{
if(avg>=60)
printf("First\n");
else
if(avg>=50)
printf("Second\n");
else
if(avg>=40)
printf("Third\n");
else
printf("Failed\n");
}
else
printf("Failed\n");
}

54. Cacluate the amount to be paid after giving the total time.

Time Amount
8 hours 100/-
Next 4 hours 20/- ph
Next 4 hours 30/- ph
Next 4 hours 40/- ph
main()
{
int time,amt;
printf("Enter Total Time :");
scanf("%d",&time);
if(time==8)
amt=100;
else
if(time>8 && time<=12)
amt=100+(time-8)*20;
else
if(time>12 && time<=16)
amt=180+(time-12)*30;
else
if(time>16 && time<=20)
amt=300+(time-16)*40;
else
{
printf("Invalid entry\n");
exit(0);
}
printf("%d", amt);
}

55. Program to convert upper case to lower case

void main()
{
char str[20];
int i;
printf("Enter any string->");
scanf("%s",str);
printf("The string is->%s",str);
for(i=0;i<=strlen(str);i++)
{
if(str[i]>=65&&str[i]<=90)
str[i]=str[i]+32;
}
printf("\nThe string in uppercase is->%s",str);
}

56. Program to calculate the power of a number

void main()
{
int pow,num,i=1;
long int sum=1;
printf("\nEnter a number: ");
scanf("%d",&num);
printf("\nEnter power: ");
scanf("%d",&pow);
while(i<=pow)
{
sum=sum*num;
i++;
}
printf("\n%d to the power %d is: %ld",num,pow,sum);

57. INSERT AN ELEMENT IN AN ARRAY AT DESIRED POSITION

void main()
{
int a[50],size,num,i,pos,temp;
printf("\nEnter size of the array: ");
scanf("%d",&size);
printf("\nEnter %d elements in to the array: ",size);
for(i=0;i<size;i++)
scanf("%d",&a[i]);
printf("\nEnter position and number to insert: ");
scanf("%d %d",&pos,&num);
i=0;
while(i!=pos-1)
i++;
temp=size++;
while(i<temp)
{
a[temp]=a[temp-1];
temp--;
}
a[i]=num;
for(i=0;i<size;i++)
printf(" %d",a[i]);
}
}

58. program to calculate the sum of the following series

1 - x + x2/2! + x3/3! --------to nth term
main()
{
int serise,square,fact=1,loop=1,loop1;
float sum;
float result=0;
printf("Enter The serise ");
scanf("%d",&serise);
while(loop<=serise)
{
square=pow(loop,2);
for(loop1=1;loop1<=loop;loop1++)
{
fact = fact * loop1;
}
sum=(float)square/fact;
if(loop%2!=0)
result = result + sum;
else
result = result - sum;
fact=1;
loop++;
}
printf("The summation Of the serise is %f\n",result);
}

59. Find the weekday of a particular date(ex-6 sep 2010 (monday)

#include "time.h"
#include "stdio.h"
main()
{
char daybuf[20];
int dd,mm,yy;
unsigned int t;
struct tm *mytime;
t=time(0);
mytime=localtime(&t);
dd=mytime->tm_mday;
mm=mytime->tm_mon+1;
yy=mytime->tm_year+1900;
mytime->tm_hour = 0;
mytime->tm_min = 0;
mytime->tm_sec = 1;
mytime->tm_isdst = -1;
printf("Enter the day,mon and year :");
scanf("%d%d%d",&dd,&mm,&yy);
if(mktime(mytime) == -1)
fprintf(stderr, "Unkown -\n");
else
strftime(daybuf, sizeof(daybuf), "%A", mytime);
printf("Itwas a %s\n", daybuf);
}

60.Write a program to convert given ip address 192.168.3.35 into 192.168.003.035

#include<stdio.h>
int main()
{
char input[16];
char p[4][4];
int i,a,b,len;
int j,c;
printf("pl enter any ip address\n");
scanf("%s",input);
a=0;b=0;
for(i=0;input[i];i++)
{
if(input[i]!='.')
p[a][b++]=input[i];
else
{
p[a][b]=0;
a++;
b=0;
}
}
p[a][b]=0;
for(a=0;a<4;a++)
{
len=strlen(p[a]);
for(j=len-1;j>=0;j--)
p[a][j+3-len]=p[a][j];
for(j=0;j<(3-len);p[a][j]='0',j++);
p[a][3]=0;
}
input[0]=0;
for(i=0;i<4;i++)
{
strcat(input,p[i]);
strcat(input,".");
}
input[15]=0;
puts(input);
return 0;
}

61.Caculate the net salary looking at the following table

Basic TA DA PF NET

>=20000 500 200 200 ?
>=10000 200 300 100 ?
>=500 100 100 100 ?
main()
{
int basic,ta,da,pf,net;
printf("Enter basic Salary :");
scanf("%d",&basic);
if(basic>=20000)
{
ta=500;
da=200;
pf=200;
}
else
if(basic>=10000)
{
ta=200;
da=300;
pf=100;
}
else
if(basic>=5000)
{
ta=100;
da=100;
pf=100;
}
else
{
printf("Invalid entry");
exit(0);
}
net=(basic+ta+da)-pf;
printf("%d", net);
}

62. Write a program to display :

*

***

*****

*******

*********

******

***

main()
{
int line,star=1,space,i,j,k;
printf("Enter the no of line :\n");
scanf("%d",&line);
printf("Enter the no of space\n");
scanf("%d",&space);
for(i=0;i<line;i++)
{
for(j=0;j<space;j++)
{
printf(" ");
}
for(k=0;k<star;k++)
{
printf("*");
}
if(i<line/2)
{
space=space-1;
star=star+2;
}
else
{
star=star-2;
space=space+1;
}
printf("\n");
}
}

63. Write a program which will store roll name and age in student structure and address telephone no. In address structure. Implement the nested structure which will store information of ten students and their address and organize data in descending order by their roll no.

#include "stdio.h"
#include "stdlib.h"
#include "fcntl.h"
#define SIZE 3
struct address
{
char addr[30];
long int phoneno;
};
struct student
{
char name[20];
int roll;
int age;
struct address p;
}__attribute__((__packed__));
main()
{
struct student details[SIZE],temp;
int loop,outer,inner;
for(loop = 0;loop<SIZE;loop++)
{
printf("Enter name :");
scanf("%s",details[loop].name);
printf("Enter roll :");
scanf("%d",&details[loop].roll);
printf("Entere Age: ");
scanf("%d",&details[loop].age);
printf("Enter address: ");
scanf("%s",details[loop].p.addr);
printf("Enter Phone number:");
scanf("%d",&details[loop].p.phoneno);
}
printf("Before Sorting\n");
for(loop = 0;loop < SIZE;loop++)
{
printf("%s\t%d\t%d\t%s\t%d\n",details[loop].name,details[loop].roll,details[loop].age,details[loop].p.addr,details[loop].p.phoneno);
}
printf("\n");
for(outer = 0;outer < SIZE;outer++)
{
for(inner = outer + 1;inner < SIZE;inner++)
{
if(details[outer].roll > details[inner].roll)
{
temp = details[outer];
details[outer] = details[inner];
details[inner] = temp;
}
}
}
printf("After Sorting\n");
for(loop = 0;loop < SIZE;loop++)
{
printf("%s\t%d\t%d\t%s\t%d\n",details[loop].name,details[loop].roll,details[loop].age,details[loop].p.addr,details[loop].p.phoneno);
}
printf("\n");
}

64. Write a program to store the information of student such as roll, name and course to a file using read & write system call.

#include "fcntl.h"
#include "stdio.h"
struct student
{
char name[30];
int roll;
int age;
}__attribute__((__packed__));
main()
{
int handlerStructure, numberOfStudent, loop;
handlerStructure = open("studentDetails.txt",O_RDWR);
printf("HOW MANY STUDENT'S INFORMATION :");
scanf("%d",&numberOfStudent);
struct student details[numberOfStudent];
for(loop = 0;loop < numberOfStudent;loop++)
{
write(1,"ENTER NAME OF STUDENT :",strlen("ENTER NAME OF STUDENT :"));
memset(details[loop].name,0,sizeof(details[loop].name));
read(0,details[loop].name,sizeof(details[loop].name));
write(1,"ENTER THE ROLL NO. :",strlen("ENTER THE ROLL NO. :"));
read(0,&details[loop].roll,sizeof(details[loop].roll));
write(1,"ENTER THE STUDENT'S AGE :",strlen("ENTER THE STUDENT'S AGE :"));
read(0,&details[loop].age,sizeof(details[loop].age));
}
//write(handlerStructure,&details,sizeof(struct student));
for(loop = 0;loop < numberOfStudent;loop++)
{
write(handlerStructure,&details[loop].name,strlen(details[loop].name));
write(handlerStructure,&details[loop].roll,sizeof(details[loop].roll));
write(handlerStructure,&details[loop].age,sizeof(details[loop].age));
}
loop = 0;
while(read(handlerStructure,&details[loop],sizeof(struct student)))
{
write(1,&details[loop].name,strlen(details[loop].name));
write(1,&details[loop].roll,sizeof(details[loop].roll));
write(1,&details[loop].age,sizeof(details[loop].age));
loop++;
}
}

65. Program for DFS

struct xxx
{
int node;
int total;
int status;
struct xxx *ad;
};
struct xxx p[5];
main()
{
struct xxx *q=0,*r,*m;
int a[5][5]={
0,1,1,1,0,
0,0,0,0,1,
0,0,0,1,0,
0,1,0,0,1,
0,0,0,0,0
};
int i,j,k;
int result[5];
memset(p,0,sizeof(p));
//create adjacence list
for(i=0;i<5;i++)
{
p[i].node=i+1;
for(j=0;j<5;j++)
{
if(a[i][j]==1)
p[i].total++;
}
for(k=1;k<=p[i].total;k++)
{
printf("Enter adjacence node for %d\n",p[i].node);
if(q==0)
{
q=malloc(sizeof(struct xxx));
printf("Enter adjacence node :");
scanf("%d",&q->node);
q->ad=0;
p[i].ad=q;
}
else
{
r=malloc(sizeof(struct xxx));
printf("Enter adjacence node :");
scanf("%d",&r->node);
q->ad=r;
q=r;
r->ad=0;
}
}
q=0;
p[i].total=0;
}
//traverse adjacence list
for(i=0;i<5;i++)
{
printf("%d : ",p[i].node);
if(p[i].ad!=0)
{
r=p[i].ad;
while(r!=0)
{
printf("%d -> ",r->node);
r=r->ad;
}
printf("\n");
}
}
q=malloc(sizeof(struct xxx));
printf("Enter source :");
scanf("%d",&q->node);
set_status(q->node);
p[q->node-1].status=1;
q->ad=0;
while(1)
{
r=p[q->node-1].ad;
if(r==0)
break;
p[q->node-1].status=1;
while(r!=0)
{
if(r->status==0)
{
m=malloc(sizeof(struct xxx));
m->node=r->node;
set_status(r->node);
m->ad=q;
q=m;
}
r=r->ad;
}
}
while(q!=0)
{
printf("%d ",q->node);
q=q->ad;
}
}
set_status(int n)
{
struct xxx *r;
int i;
for(i=0;i<5;i++)
{
r=p[i].ad;
while(r!=0)
{
if(r->node==n)
r->status=1;
r=r->ad;
}
}
}

65. Program for BFS

struct xxx
{
int node;
int total;
int status;
struct xxx *ad;
};
struct xxx p[5];
main()
{
struct xxx *q=0,*r,*m,*f;
int a[5][5]={
0,1,1,1,0,
0,0,0,0,1,
0,0,0,1,0,
0,1,0,0,1,
0,0,0,0,0
};
int i,j,k;
int result[5];
memset(p,0,sizeof(p));
//create adjacence list
for(i=0;i<5;i++)
{
p[i].node=i+1;
for(j=0;j<5;j++)
{
if(a[i][j]==1)
p[i].total++;
}
for(k=1;k<=p[i].total;k++)
{
printf("Enter adjacence node for %d\n",p[i].node);
if(q==0)
{
q=malloc(sizeof(struct xxx));
printf("Enter adjacence node :");
scanf("%d",&q->node);
q->ad=0;
p[i].ad=q;
}
else
{
r=malloc(sizeof(struct xxx));
printf("Enter adjacence node :");
scanf("%d",&r->node);
q->ad=r;
q=r;
r->ad=0;
}
}
q=0;
p[i].total=0;
}
//traverse adjacence list
for(i=0;i<5;i++)
{
printf("%d : ",p[i].node);
if(p[i].ad!=0)
{
r=p[i].ad;
while(r!=0)
{
printf("%d -> ",r->node);
r=r->ad;
}
printf("\n");
}
}
q=malloc(sizeof(struct xxx));
printf("Enter source :");
scanf("%d",&q->node);
set_status(q->node);
p[q->node-1].status=1;
q->ad=0;
f=q;
while(1)
{
r=p[q->node-1].ad;
if(r==0)
break;
p[q->node-1].status=1;
while(r!=0)
{
if(r->status==0)
{
m=malloc(sizeof(struct xxx));
m->node=r->node;
set_status(r->node);
q->ad=m;
q=m;
}
r=r->ad;
}
}
while(f!=0)
{
printf("%d ",f->node);
f=f->ad;
}
}
set_status(int n)
{
struct xxx *r;
int i;
for(i=0;i<5;i++)
{
r=p[i].ad;
while(r!=0)
{
if(r->node==n)
r->status=1;
r=r->ad;
}
}
}

66. Program to search an element using hash table

main()
{
int x[10];
int k,m=8,i=0,j=0,flag=0;
int pos;
memset(x,0,sizeof(x));
for(i=0;i<8;i++)
{
printf("Enter data :");
scanf("%d",&k);
pos=(k%m+j)%m;
if(x[pos]==0)
x[pos]=k;
else
{
while(x[pos]!=0)
{
j++;
pos=(k%m+j)%m;
}
x[pos]=k;
j=0;
}
}
j=0;
printf("Enter number to search :");
scanf("%d",&k);
pos=(k%m+j)%m;
if(k==x[pos])
flag=1;
else
{
while(pos<m)
{
pos++;
if(x[pos]==k)
{
flag=1;
break;
}
}
}
if(flag==1)
printf("Found\n");
else
printf("Not found\n");
}

67. Program to search a string from hash table

main()
{
char x[8][20];
int i,k,pos,m=8,j=0,f=0;
char p[20];
memset(x,0,sizeof(x));
for(i=0;i<8;i++)
{
printf("Enter string :");
scanf("%s",p);
k=p[0];
pos=(k%m+j)%m;
if(strlen(x[pos])==0)
strcpy(x[pos],p);
else
{
while(j<m)
{
j++;
pos=(k%m+j)%m;
if(strlen(x[pos])==0)
break;
}
strcpy(x[pos],p);
j=0;
}
}
j=0;
printf("Enter search string :");
scanf("%s",p);
k=p[0];
pos=(k%m+j)%m;
if(strcmp(x[pos],p)==0)
f=1;
else
while(j<m)
{
j++;
pos=(k%m+j)%m;
if(strcmp(x[pos],p)==0)
{
f=1;
break;
}
}
if(f==1)
printf("Found");
else
printf("Not found");
}

68. Program to search an element using hash table using chaining

struct xxx
{
int data;
struct xxx *ad;
};
main()
{
struct xxx p[10],*q,*r;
int i,k,m=10,pos,flag=0;
memset(p,0,sizeof(p));
for(i=0;i<10;i++)
{
printf("Enter element :");
scanf("%d",&k);
pos=k%m;
if(p[pos].data==0)
{
p[pos].data=k;
}
else
{
if(p[pos].ad==0)
{
q=malloc(sizeof(struct xxx));
p[pos].ad=q;
q->data=k;
q->ad=0;
}
else
{
r=p[pos].ad;
while(r->ad!=0)
{
r=r->ad;
}
q=malloc(sizeof(struct xxx));
q->data=k;
q->ad=0;
r->ad=q;
}
}
}
printf("Enter number to search:");
scanf("%d",&k);
pos=k%m;
if(k==p[pos].data)
flag=1;
else
{
r=p[pos].ad;
while(r!=0)
{
if(k==r->data)
{
flag=1;
break;
}
r=r->ad;
}
}
if(flag==1)
printf("Found\n");
else
printf("Not found\n");
}

69. Shortest path using warshal's algorithm

main()
{
int a[6][6]={
0,5,3,99,1,99,
99,0,99,5,99,99,
99,99,0,99,2,2,
99,99,3,0,99,3,
99,2,99,1,0,99,
99,99,99,99,99,0
};
int i,j,k;
int p[6][6];
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(a[i][j]==0)
p[i][j]=0;
else
p[i][j]=a[i][j];
}
}
//find shortest path
for(k=0;k<6;k++)
{
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(p[i][j]<=p[i][k] + p[k][j])
p[i][j]=p[i][j];
else
p[i][j]=p[i][k]+p[k][j];
}
}
}
//traverse shortest path
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
printf("%d ",p[i][j]);
}
printf("\n");
}
}

70. Shortest path using Dijkstra's algorithm

main()
{
int x[8];
int y[8];
int i,j,label,s,c=1;
int flag[8];
int a[8][8]={
0,100,3,100,100,100,3,100,
100,0,100,100,100,100,2,5,
100,100,0,3,100,100,100,100,
100,100,100,0,100,1,100,100,
100,2,100,100,0,2,100,2,
100,100,100,100,100,0,6,1,
100,2,4,4,1,100,0,100,
100,100,100,5,100,100,100,0
};
memset(flag,0,sizeof(flag));
printf("Enter source:");
scanf("%d",&label);
flag[label]=1;
for(i=0;i<8;i++)
{
x[i]=a[label][i];
}
while(c<8)
{
label=smallest(x,flag);
s=x[label];
for(i=0;i<8;i++)
{
y[i]=a[label][i]+s;
if(x[i]>y[i])
x[i]=y[i];
}
flag[label]=1;
c++;
}
for(i=0;i<8;i++)
{
printf("%d ",x[i]);
}
}
int smallest(int x[],int flag[])
{
int i,j,k;
for(i=0;i<8;i++)
{
if(flag[i]!=1)
{
k=x[i];
break;
}
}
for(i=0;i<8;i++)
{
if(flag[i]!=1)
if(x[i]<k)
{
k=x[i];
j=i;
}
}
return j;
}

71. Find the path matrix of Graph

main()
{
int a[6][6]={
0,1,1,0,1,0,
0,0,0,1,0,0,
0,0,0,0,1,1,
0,0,1,0,0,1,
0,1,0,1,0,0,
0,0,0,0,0,0
};
int i,j,k;
int p[6][6];
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(a[i][j]==0)
p[i][j]=0;
else
p[i][j]=1;
}
}
//calculate path matrix
for(k=0;k<6;k++)
{
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
p[i][j]=p[i][j]|(p[i][k] & p[k][j]);
}
}
}
//visit path matrix
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
printf("%d ",p[i][j]);
}
printf("\n");
}
}

72. Program to read the current date and time

#include<time.h>
main()
{
struct tm *k;
unsigned long int t;
int h,m,s;
int dd,mm,yy;
t = time(0);
k = localtime(&t);
h = k->tm_hour;
m = k->tm_min;
s = k->tm_sec;
dd = k->tm_mday;
mm = k->tm_mon+1;
yy = k->tm_year+1900;
printf("Time : %d : %d : %d\n",h,m,s);
printf("Date : %d : %d : %d\n",dd,mm,yy);
}

73. Program to read all files from current directory

#include "dirent.h"
main()
{
DIR *p;
struct dirent *q;
p = opendir("/home/satyam/Desktop/demo");
while((q=readdir(p)) != 0)
{
if(q->d_name[0] != '.')
printf("%s\n",q->d_name);
}
}

No comments:

Post a Comment

\