0% found this document useful (0 votes)
82 views11 pages

2d Example Insertion Sort

The document contains code snippets and examples for various C programming concepts like data structures, algorithms, and mathematical operations. Some key examples include: 1) Linked list insertion sort - Code for inserting nodes into a linked list in sorted order. 2) Bubble sort routines - Examples of bubble sort for arrays and linked lists. 3) Matrix addition - Code to add two matrices by iterating through and summing corresponding elements. 4) Finding an element in an array using binary search. 5) Calculating interest and total amount over years by iterating through a loop.

Uploaded by

abichandran
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views11 pages

2d Example Insertion Sort

The document contains code snippets and examples for various C programming concepts like data structures, algorithms, and mathematical operations. Some key examples include: 1) Linked list insertion sort - Code for inserting nodes into a linked list in sorted order. 2) Bubble sort routines - Examples of bubble sort for arrays and linked lists. 3) Matrix addition - Code to add two matrices by iterating through and summing corresponding elements. 4) Finding an element in an array using binary search. 5) Calculating interest and total amount over years by iterating through a loop.

Uploaded by

abichandran
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 11

2d example insertion sort :

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

struct node
{
int number;
struct node *next;
};

struct node *head = NULL;

/* insert a node directly at the right place in the linked list */


void insert_node(int value);

int main(void)
{
struct node *current = NULL;
struct node *next = NULL;
int test[] = {8, 3, 2, 6, 1, 5, 4, 7, 9, 0};
int i = 0;

/* insert some numbers into the linked list */


for(i = 0; i < i =" 0;">next != NULL)
{
printf("%4d\t%4d\n", test[i++], head->number);
head = head->next;
}

/* free the list */


for(current = head; current != NULL; current = next)
next = current->next, free(current);

return 0;
}

void insert_node(int value)


{
struct node *temp = NULL;
struct node *one = NULL;
struct node *two = NULL;

if(head == NULL) {
head = (struct node *)malloc(sizeof(struct node *));
head->next = NULL;
}

one = head;
two = head->next;

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


temp->number = value;

while(two != NULL && temp->number <>number) {


one = one->next;
two = two->next;
}

one->next = temp;
temp->next = two;
}

A bubblesort routine
# include
# include
void bubblesort(int array[],int size);
void main()
{
int values[10],j;
for(j=0;j<10;j++)
values[j] = rand()%100;
/*unsorted*/
printf("\nUnsorted values.\n");
for(j=0;j<10;j++)
printf("%d ",values[j]);
/*sorted*/
printf("\nSorted values.\n");
bubblesort(values,10);
for(j=0;j<10;j++)
printf("%d ",values[j]);
}
void bubblesort(int array[],int size)
{
int tmp ,i,j;
for(i = 0;i
for(j=0;j < size;j++)
if(array[i] < array[j])
{
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}

A simple example showing some comparison operators


#include
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;
}
Addition of Two Matrices
//Addition of Matrix

#include <stdio.h>

#include <conio.h>

int m1,n1,m2,n2,i,j,k,z[10][10]={0};

void value_sub(int a,int b,int arr[][10] )


{
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
printf(“Mat[%d%d] = “,i+1,j+1);
scanf(“%d”,&arr[i][j]);
fflush(stdin);
}
printf(“”);

}
void mat_mul(int a,int b,int arr[][10],int brr[][10])

int k=0;

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

for(j=0;j<b;j++)

z[i][j]+=arr[i][j]+brr[i][j];

printf(“%d\t”,z[i][j]);

printf(“\n\n”);

int main()

int A[10][10]={0},B[10][10]={0};

printf(“Enter the column and row of first matrix(m x n)\n”);

scanf(“%d%d”,&m1,&n1);
printf(“Enter the column and row of second matrix(m x n)\n”);

scanf(“%d%d”,&m2,&n2);

printf(“\n\n”);

if (n1==m1||n2==m2)

value_sub(m1,n1,A);

printf(“\n\n”);

value_sub(m2,n2,B);

printf(“\n\n”);

mat_mul(m1,n2,A,B);

else

printf(“Addition of Matrix cannot be done”);

getch();

AREA OF CIRCLE

WAP TO FIND OUT AREA OF CIRCLE

#include

void main ()

float r,c;

clrscr();

printf ("Enter Radius: ");

scanf ("%f",&r);

c=3.14*r*r;

printf ("\nArea is : %.2f",c);


getch ();

ARRANGE THE ELEMENTS IN ARRAY IN DESSENDING ORDER

main()
{
int a[100],i,n,j,search,temp;
printf("\n how many no's in array");
scanf("%d",&n);
printf("\n enter %d elements in array",n);
for(i=0;i
scanf("%d",&a[i]);
for(i=0;i
{
for(j=i+1;j
{
if(a[i]
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
printf("%4d",a[i]);
}
getch();
}

Basic example showing constants usage in C


#include
/*constants for bonus rates and sales*/
#define BONUSRATE1 0.1
#define BONUSRATE2 0.15
#define BONUSRATE3 0.2
#define SALES1 2000
#define SALES2 5000
#define SALES3 10000
int main()
{
int sales;
double commission;
/*get employees sales*/
printf("Please enter your total sales to the nearest dollar.\n");
scanf("%d", &sales);
/*calculate employees bonus based on info*/
if(sales <=2000)
{
commission = sales * BONUSRATE1;
printf("%g\n" , commission);
}
else if(sales > 2000 && sales <=5000)
{
commission = sales * BONUSRATE2;
printf("%g\n" , commission);
}
else
{
commission = sales * BONUSRATE3;
printf("%g\n" , commission);
}

return 0;
}

Binary search
#define TRUE 0
#define FALSE 1

int main(void)
{
int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int left = 0;
int right = 10;
int middle = 0;
int number = 0;
int bsearch = FALSE;
int i = 0;

printf("ARRAY: ");
for(i = 1; i <= 10; i++)
printf("[%d] ", i);
printf("\nSearch for Number: ");
scanf("%d", &number);

while(bsearch == FALSE && left <= right)


{
middle = (left + right) / 2;

if(number == array[middle])
{
bsearch = TRUE;
printf("** Number Found **\n");
} else {
if(number < array[middle]) right = middle - 1;
if(number > array[middle]) left = middle + 1;
}
}

if(bsearch == FALSE)
printf("-- Number Not found --\n");

return 0;
}

Bubble sort - linked list


#define MAX 10

struct lnode
{
int data;
struct lnode *next;
} *head, *visit;

/* add a new entry to the linked list */


void llist_add(struct lnode **q, int num);
/* preform a bubble sort on the linked list */
void llist_bubble_sort(void);
/* print the entire linked list */
void llist_print(void);

int main(void) {
/* linked list */
struct lnode *newnode = NULL;
int i = 0; /* a general counter */

/* load some random values into the linked list */


for(i = 0; i < MAX; i++)
{
llist_add(&newnode, (rand() % 100));
}

head = newnode;
printf("Before bubble sort:\n");
llist_print();
printf("After bubble sort:\n");
llist_bubble_sort();
llist_print();

return 0;
}

/* adds a node at the end of a linked list */


void llist_add(struct lnode **q, int num)
{
struct lnode *tmp;

tmp = *q;

/* if the list is empty, create first node */


if(*q == NULL) {
*q = malloc(sizeof(struct lnode));
tmp = *q;
} else {
/* go to last node */
while(tmp->next != NULL)
tmp = tmp->next;

/* add node at the end */


tmp->next = malloc(sizeof(struct lnode));
tmp = tmp->next;
}

/* assign data to the last node */


tmp->data = num;
tmp->next = NULL;
}

/* print the entire linked list */


void llist_print(void)
{
visit = head;

while(visit != NULL)
{
printf("%d ", visit->data);
visit = visit->next;
}
printf("\n");
}

/* preform a bubble sort on the linked list */


void llist_bubble_sort(void) {
struct lnode *a = NULL;
struct lnode *b = NULL;
struct lnode *c = NULL;
struct lnode *e = NULL;
struct lnode *tmp = NULL;

/*
// the `c' node precedes the `a' and `e' node
// pointing up the node to which the comparisons
// are being made.
*/
while(e != head->next)
{
c = a = head;
b = a->next;
while(a != e)
{
if(a->data > b->data)
{
if(a == head)
{
tmp = b -> next;
b->next = a;
a->next = tmp;
head = b;
c = b;
} else {
tmp = b->next;
b->next = a;
a->next = tmp;
c->next = b;
c = b;
}
} else
{
c = a;
a = a->next;
}
b = a->next;
if(b == e)
e = a;
}
}
}

bubble sort

#include <stdio.h>

void bubble_sort(int a[], int size);

int main(void) {
int arr[10] = {10, 2, 4, 1, 6, 5, 8, 7, 3, 9};
int i = 0;

printf("before:\n");
for(i = 0; i < 10; i++) printf("%d ", arr[i]);
printf("\n");

bubble_sort(arr, 10);

printf("after:\n");
for(i = 0; i < 10; i++) printf("%d ", arr[i]);
printf("\n");

return 0;
}

void bubble_sort(int a[], int size)


{
int switched = 1;
int hold = 0;
int i = 0;
int j = 0;

size -= 1;

for(i = 0; i < size && switched; i++)


{
switched = 0;
for(j = 0; j < size - i; j++)
if(a[j] > a[j+1])
{
switched = 1;
hold = a[j];
a[j] = a[j + 1];
a[j + 1] = hold;
}
}
}

Bubble sort in string array


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

#define MAX 50
#define N 2000

void sort_words(char *x[], int y);


void swap(char **, char **);

int main(void)
{
char word[MAX];
char *x[N];
int n = 0;
int i = 0;

for(i = 0; scanf("%s", word) == 1; ++i)


{
if(i >= N)
printf("Limit reached: %d\n", N), exit(1);

x[i] = calloc(strlen(word)+1, sizeof(char));


strcpy(x[i], word);
}

n = i;
sort_words(x, n);
for(i = 0; i < n; ++i)
printf("%s\n", x[i]);

return(0);
}

void sort_words(char *x[], int y)


{
int i = 0;
int j = 0;

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


for(j = i + 1; j < y; ++j)
if(strcmp(x[i], x[j]) > 0)
swap(&x[i], &x[j]);
}

void swap(char **p, char **q)


{
char *tmp;

tmp = *p;
*p = *q;
*q = tmp;
}

C Program to calcuate interest and total amount at the end of each


year
Write a
c program
calculate interest and total amount at da end of each year

Note: Output is not in the form of table and rate is taken as 2%. It calculates amount of each year

#include <stdio.h>
#include <conio.h>
void main()
{
int t=1;
int r=2;
int y;
int y1=0;
long int p,a;
float i1;
double total;;
clrscr();
printf("enter starting amount&year");
scanf("%ld""%d",&p,&y);
while(y1<2009) i1="(p*r*t)/100;" total="i1+a+p;" p="p+a;" style="color: rgb(255, 0, 0);">

You might also like