Showing posts with label C Programming. Show all posts
Showing posts with label C Programming. Show all posts

Random File Access in C

WAP to print the first character of each word from the string contained in a file “details.txt”. The file “details.txt” has “Deep Raj Bhujel” string in it and your program should print “D R B” on the console screen. [Random File Access: fseek(), ftell(), rewind()]

#include<stdio.h>

#include<stdlib.h>

int main()

{

    FILE *fp;

    char ch;

    //long pos;


    fp = fopen("details.txt","r");


    if(fp == NULL)

    {

        puts("Error opening file");

        exit(1);

    }


    //printf("%ld ",ftell(fp));

    ch = fgetc(fp);

    printf("%c ",ch);

    //printf("%ld ",ftell(fp));


    fseek(fp,4,SEEK_CUR);

    ch = fgetc(fp);

    printf("%c ",ch);

    //printf("%ld ",ftell(fp));


    fseek(fp,3,SEEK_CUR);

    ch = fgetc(fp);

    printf("%c ",ch);

    //printf("%ld ",ftell(fp));


    //rewind(fp);

    //printf("%ld ",ftell(fp));


    return 0;

}


Caesar Cipher in C

 #include<stdio.h>

int main(){

char inputtext[]="Deep Raj Bhujel", ciphertext[100], decipheredtext[100];

int i,shift=3;

for(i=0;inputtext[i]!='\0';i++){

if(isupper(inputtext[i]))

ciphertext[i]=(inputtext[i]-65+shift)%26 + 65;

else if(islower(inputtext[i]))

ciphertext[i]=(inputtext[i]-97+shift)%26 + 97;

else

ciphertext[i]=inputtext[i];

}

ciphertext[i]='\0';

printf("The encrypted string is %s\n\n",ciphertext);

for(i=0;ciphertext[i]!='\0';i++){

if(isupper(ciphertext[i]))

decipheredtext[i]=(ciphertext[i]-65-shift)%26 + 65;

else if(islower(ciphertext[i]))

decipheredtext[i]=(ciphertext[i]-97-shift)%26 + 97;

else

decipheredtext[i]=ciphertext[i];

}

decipheredtext[i]='\0';

printf("The decrypted string is %s",decipheredtext);

return 0;

}

Implementation of Preprocessor in C Programming

Q. Write macro definitions with arguments for calculation of area and perimeter of a triangle, a square and a circle. Store these macro definitions in a file called "areaperi.h". Include this file in your program, and call the macro definitions for calculating area and perimeter for different triangles, squares and circles.

Step 1: Create a header file (.h) declaring the prototypes of required functions.

float area1(int, int, int); // for triangle
int area2(int); // for square
float area3(float); // for circle

float perimeter1(int, int, int); // for triangle
int perimeter2(int); // for square
float perimeter3(float); // for circle

Step 2: Create a C programming file (.c) defining those functions.

#include<stdio.h>
#include<math.h>
#define PI 3.1416

float perimeter1(int a, int b, int c) // for triangle
{
    return a+b+c;
}

int perimeter2(int a) // for square
{
    return 4*a;
}

float perimeter3(float r) // for circle
{
    return 2*PI*r;
}

float area1(int a, int b, int c) // for triangle
{
    float s = perimeter1(a, b, c)/2;
    return sqrt(s*(s-a)*(s-b)*(s-c));
}

int area2(int a) // for square
{
    return pow(a,2);
}

float area3(float r) // for circle
{
    return PI*r*r;
}

Step 3: Write your C program (.c) including the areaperi.h file as #include "areaperi.h".

Stack Implementation using Array

// Static Implementation of Stack

#include<stdio.h>

#include<conio.h>

#define N 5

int stack[5];

int top = -1;

void push(){

int x;

printf("Enter data: ");

scanf("%d",&x);

if(top==N-1)

printf("Overflow\n");

else{

top++;

stack[top]=x;

}

}

Binary Search Algorithm

#include<stdio.h>

#include<conio.h>

int BinarySearch(int [],int,int,int);

int a[100],i,n,key,flag,l,r,m;

void main(){

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements (in ascending order): ");

for(i=0;i<n;i++)

scanf("%d",&a[i]);

printf("Enter value to be searched: ");

scanf("%d",&key);

flag=BinarySearch(a,0,n-1,key);

if(flag==0)

printf("%d is not found.",key);

else

printf("%d is found at %d position",key,flag+1);

getch();

}

Linear Search Algorithm

#include<stdio.h>
#include<conio.h>
void LinearSearch(int [],int,int);
int a[100],i,n,key;
void main(){
printf("Enter array size: ");
scanf("%d",&n);
printf("Enter array elements: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Enter value to be searched: ");
scanf("%d",&key);
LinearSearch(a,n,key);
getch();
}

Counting Sort

#include<stdio.h>

#include<conio.h>

void counting_sort(int [],int,int);

int a[100],count[100],b[100],i,k,n;

void main(){

// int a[100],i,n;

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements: ");

for(i=0;i<n;i++)

scanf("%d",&a[i]);

k=a[0];

for(i=1;i<n;i++){

if(k<a[i])

k=a[i];

}

counting_sort(a,n,k);

printf("After Sorting: ");

for(i=0;i<n;i++)

printf("%d ",a[i]);

getch();

}

Quick Sort

#include<stdio.h>

#include<conio.h>

void quick_sort(int [],int,int);

int partition(int [],int,int);

int a[100],i,j,n,temp,lb,ub,start,end,pivot,loc;

void main(){

// int a[100],i,n;

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements: ");

for(i=0;i<n;i++)

scanf("%d",&a[i]);

quick_sort(a,0,n-1);

printf("After Sorting: ");

for(i=0;i<n;i++)

printf("%d ",a[i]);

getch();

}

Selection Sort

#include<stdio.h>

#include<conio.h>

void selection_sort(int [],int);

int a[100],i,j,n,temp,min;

void main(){

// int a[100],i,n;

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements: ");

for(i=0;i<n;i++)

scanf("%d",&a[i]);

selection_sort(a,n);

printf("After Sorting: ");

for(i=0;i<n;i++)

printf("%d ",a[i]);

getch();

}


void selection_sort(int a[],int n){

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

min=i;

for(j=i+1;j<n;j++){

if(a[j]<a[min])

min=j;

}

// swap(a[i],a[min])

if(min!=i){

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

}

}

Insertion Sort

#include<stdio.h>

#include<conio.h>

void insertion_sort(int [],int);

int a[100],i,j,n,temp;

void main(){

// int a[100],i,n;

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements: ");

for(i=0;i<n;i++)

scanf("%d",&a[i]);

insertion_sort(a,n);

printf("After Sorting: ");

for(i=0;i<n;i++)

printf("%d ",a[i]);

getch();

}


void insertion_sort(int a[],int n){

for(i=1;i<n;i++){

temp=a[i];

j=i-1;

while(j>=0 && a[j]>temp){

a[j+1]=a[j];

j--;

}

a[j+1]=temp;

}

}

Bubble Sort

 #include<stdio.h>

#include<conio.h>

void bubble_sort(int [],int);

int a[100],i,j,n,temp;

void main(){

// int a[100],i,n;

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements: ");

for(i=0;i<n;i++)

scanf("%d",&a[i]);

bubble_sort(a,n);

printf("After Sorting: ");

for(i=0;i<n;i++)

printf("%d ",a[i]);

getch();

}


void bubble_sort(int a[],int n){

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

for(j=0;j<n-1;j++){

if(a[j]>a[j+1]){

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

}

Binary Tree Implementation and Traversal [Pre-Order, In-Order, Post-Order]

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

struct node{

int data;

struct node *left,*right;

};

struct node* create(){

int x;

struct node *newnode;

newnode=(struct node*)malloc(sizeof(struct node));

printf("Enter data (-1 for no node): ");

scanf("%d",&x);

if(x==-1)

return 0;

newnode->data=x;

printf("Enter left child of %d: ",x);

newnode->left=create();

printf("Enter right child of %d: ",x);

newnode->right=create();

return newnode;

}

Queue Implementation using Linked List

 #include<stdio.h>

#include<conio.h>

#include<stdlib.h>

void enqueue(int);

void dequeue();

void display();

void peek();

struct node{

int data;

struct node *next;

};

struct node *newnode, *front=0,*rear=0, *temp;

void main(){

enqueue(3);

enqueue(5);

enqueue(7);

enqueue(9);

display();

peek();

dequeue();

display();

peek();

getch();

}

Stack Implementation using Linked List

// Dynamic Implementation of Stack

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

void push(int);

void pop();

void display();

void peek();

struct node{

int data;

struct node *next;

};

struct node *newnode, *top=0,*temp;

void main(){

push(3);

push(5);

push(7);

push(9);

display();

peek();

pop();

display();

peek();

getch();

}

Queue as a List

 #include<stdio.h>

#include<conio.h>

#define N 5

void display();

int queue[N],front=-1,rear=-1,i;

void enqueue(int x){

if(rear==N-1)

printf("Queue is full.");

else if(front==-1 && rear==-1){

front=rear=0;

queue[rear]=x;

}

else{

rear++;

queue[rear]=x;

}

}

Create, Display, Insert, Delete, Reverse a Linked List

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>


void create();

void display();


void insert_atfirst();

void insert_atend();

void getlength();

void insert();


void delete_fromfirst();

void delete_fromend();

void delete_frompos();


void reverse();


struct node{

int data;

struct node *next;

};

struct node *head, *newnode, *temp, *prevnode, *nextnode, *currentnode;

int count;


void main(){

create();

display();

insert_atfirst();

display();

insert_atend();

display();

getlength();

insert();

display();

delete_fromfirst();

display();

delete_fromend();

display();

delete_frompos();

display();

reverse();

display();

getch();

}

Create, Display, Insert, Delete, Update in List [Array]

#include<stdio.h>

#include<conio.h>


int create();

int display(int [],int);

int insert(int [],int);

int delete_fromlist(int [],int);

int update(int [],int);


int a[100],n,i;


void main(){

create();

display(a,n);

insert(a,n);

delete_fromlist(a,n);

update(a,n);

getch();

}


int create(){

printf("Enter n: ");

scanf("%d",&n);

printf("Enter %d elements:\n",n);

for(i=0;i<n;i++)

scanf("%d",&a[i]);

}


int display(int a[],int n){

printf("Current array elements: ");

for(i=0;i<n;i++)

printf("%d\t",a[i]);

}

C Program - String Palindrome or Not

// Write a C program to check whether the given string is palindrome or not.
// Palindrome should be checked by user defined function.


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

void palindrome(char []);

void main()
{
    char str[20];
    clrscr();
    printf("Enter string: ");
    fgets(str,sizeof(str),stdin);

    palindrome(str);

    // printf("String is: ");
    // puts(str);
    getch();
}

C Program - Ascending and Descending Order

// Write a program to rea n integer numbers in an array dynamically
// and create two functions to sort in ascending and descending order
// and display the result in the main function.

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

void ascending(int*, int);
void descending(int*, int);

void main()
{
    int *ptr,n,i;
    printf("Enter n: ");
    scanf("%d",&n);
    ptr = (int*)malloc(n*sizeof(int));
    printf("Enter the elements:\n");
    for(i=0;i<n;i++)
    {
    scanf("%d",(ptr+i));
    }

    ascending(ptr,n);
    printf("Ascending order: \n");
    for(i=0;i<n;i++)
    {
    printf("%d ",*(ptr+i));
    }

    descending(ptr,n);
    printf("\nDescending order: \n");
    for(i=0;i<n;i++)
    {
    printf("%d ",*(ptr+i));
    }

    getch();
}

void ascending(int *ptr, int n)
{
    int i,temp;
    while(n!=0)
    {
    for(i=0;i<n-1;i++)
    {
        if(*(ptr+i) > *(ptr+i+1))
        {
        temp=*(ptr+i);
        *(ptr+i)=*(ptr+i+1);
        *(ptr+i+1)=temp;
        }
    }
    n--;
    }
}

void descending(int *ptr, int n)
{
    int i,temp;
    while(n!=0)
    {
    for(i=0;i<n-1;i++)
    {
        if(*(ptr+i) < *(ptr+i+1))
        {
        temp=*(ptr+i);
        *(ptr+i)=*(ptr+i+1);
        *(ptr+i+1)=temp;
        }
    }
    n--;
    }
}

C Program for Least Square Method (Regression Analysis)

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

void main()
{
float x[100],y[100],sumx=0,sumx2=0,sumy=0,sumyx=0,b,a;
int i,n;

printf("Enter n: ");
scanf("%d",&n);

printf("Enter the values:\n");
for(i=0;i<n;i++)
{
printf("Enter x[%d] and y[%d]: ",i,i);
scanf("%f%f",&x[i],&y[i]);
}

for(i=0;i<n;i++)
{
sumx=sumx+x[i];
sumx2=sumx2+x[i]*x[i];
sumy=sumy+y[i];
sumyx=sumyx+y[i]*x[i];
}

//for y=ax+b
b=(sumx2*sumy-sumyx*sumx)/(n*sumx2-sumx*sumx);
a=(n*sumyx-sumx*sumy)/(n*sumx2-sumx*sumx);

printf("\nHence, the required eqn is y = %fx + %f",a,b);

getch();
}

OUTPUT: