basic c programs

69
Total Number of Consonants in a String #include<stdio.h> #include<conio.h> #include<string.h> void main() { int c=0,i,l,p; char a[10]; clrscr(); printf("program that gives total number of consonants in a string"); printf("\n\n\n\t\t------------INPUT-------------"); printf("\n\nenter any string");//taking input from the user scanf("%s",&a); l=strlen(a); for(i=0;i<l;i++)< div=""> { if(a[i]=='a' || a[i]=='e' || a[i]=='o' || a[i]=='i' || a[i]=='u') c++; } p=l-c; printf("\n\n\n\t\t------------OUTPUT------------"); printf("\n\nthe total no. of consonants in the string are= %d",p);//printing output getch(); } 2d example insertion sort #include <stdio.h>

Upload: get2ganesh

Post on 02-Dec-2014

125 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Basic C Programs

Total Number of Consonants in a String

#include<stdio.h>#include<conio.h>#include<string.h>void main(){int c=0,i,l,p; char a[10];clrscr();printf("program that gives total number of consonants in a string");printf("\n\n\n\t\t------------INPUT-------------");printf("\n\nenter any string");//taking input from the userscanf("%s",&a);l=strlen(a);for(i=0;i<l;i++)< div="">{if(a[i]=='a' || a[i]=='e' || a[i]=='o' || a[i]=='i' || a[i]=='u')c++;}p=l-c;printf("\n\n\n\t\t------------OUTPUT------------");printf("\n\nthe total no. of consonants in the string are=%d",p);//printing outputgetch();}

2d example insertion sort#include <stdio.h>#include <conio.h>

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

Page 2: Basic C Programs

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;

Page 3: Basic C Programs

}

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

A bubblesort routine # include# includevoid 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;ifor(j=0;j < size;j++)if(array[i] < array[j]){tmp = array[i];array[i] = array[j];

Page 4: Basic C Programs

array[j] = tmp;}}

A simple example showing some comparison operators #includeint 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;}

AREA OF CIRCLE WAP to find out areA of circle#includevoid main (){float r,c;clrscr();printf ("Enter Radius: ");scanf ("%f",&r);c=3.14*r*r;printf ("\nArea is : %.2f",c);getch ();}

Output[IMG]file:///C:/Users/JEYAKI%7E1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.jpg[/IMG]

Page 5: Basic C Programs

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;iscanf("%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 10000int 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)

Page 6: Basic C Programs

{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;

Page 7: Basic C Programs

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;

Page 8: Basic C Programs

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");

Page 9: Basic C Programs

}

/* 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;}

Page 10: Basic C Programs

}}

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;

Page 11: Basic C Programs

}}}

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)

Page 12: Basic C Programs

{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

#include <stdio.h> #include <conio.h> void main() { int t=1;

Page 13: Basic C Programs

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);">

calculate the power in watts #includeint main(){float power,voltage,current;voltage = current = 0;

printf("Power calculator.\n");printf("This will calculate the power in watts , ");printf("when you input the voltage and current.");/*get the voltage*/printf("Enter the voltage in volts.\n");scanf("%f",&voltage);/*get the current*/printf("Enter the current in amps.\n");scanf("%f",¤t);/*calculate the power*/power = voltage * current;printf("The power in watts is %.2f watts\n",power);

return 0;}

count occurrences of values in an array #includevoid print_arr(int grades[], int elements);int count_passes(int grades[], int elements,int value);

int main(void){int grades[10] = {70,80,95,65,35,85,54,78,45,68};int result;

Page 14: Basic C Programs

print_arr(grades,10);result = count_passes(grades,10,70);if(result == 1)printf("There was %d pass.\n",result);elseprintf("There were %d passes.\n",result);return 0;}

void print_arr(int grades[], int elements){int i;

for(i = 0;i < elements;i++){printf("%d ",grades[i]);}printf("\n");}

int count_passes(int grades[], int elements,int value){int i ,passes = 0 ;for(i = 0;i < elements;i++){if(grades[i] >= value)passes++;}return(passes);}

Qserch , string, dynamic pointer array #include "stdio.h"#include "stdlib.h"#include "string.h"

void sortstrarr(void *array, unsigned n);static int cmpr(const void *a, const void *b);

int main (void){char **strarray = NULL;int i = 0, strcount = 0;

Page 15: Basic C Programs

char line[1024];

while((fgets(line, 1024, stdin)) != NULL){if(strlen(line) == 1)continue;

strarray = (char **)realloc(strarray, (strcount + 1) * sizeof(char *));strarray[strcount++] = strdup(line);}

printf("### Before ###\n");for(i = 0; i < strcount; i++)printf("%2d: %s", i, strarray[i]);

sortstrarr(strarray, strcount);

printf("### After ###\n");for(i = 0; i < strcount; i++)printf("%2d: %s", i, strarray[i]);

/* free mem... */for(i = 0; i < strcount; i++)free(strarray[i]);

free(strarray);return 0;}

static int cmpr(const void *a, const void *b){return strcmp(*(char **)a, *(char **)b);}

void sortstrarr(void *array, unsigned n){qsort(array, n, sizeof(char *), cmpr);}

Factorial Function In C #include "stdio.h"#include "conio.h"long int factorial(int n);void main(){

Page 16: Basic C Programs

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();}

long int factorial(int n){if (n<=1)return(1);elsen=n*factorial(n-1);return(n);}

FIND THE SUM OF DIGIT THREE Numbers /* FIND THE SUM OF DIGIT THREE NO'S*/#include "math.h"main(){int d,d1,d2,d3,r1,r2,sum;clrscr();printf("\n enter any three digit no's");scanf("%d",&d);d1=d/100;r1=d%100;if(r1!=0){d2=r1/10;r2=r1%10;

Page 17: Basic C Programs

if(r2!=0)d3=r2;elsed3=0;}elsed2=0;d3=0;}sum=d1+d2+d3;printf("\n sum of 3 digit no is %d",sum);getch();}

Hsort, heap sort /* array of MAXARRAY length ... */#define MAXARRAY 5

/* preform the heapsort */void heapsort(int ar[], int len);/* help heapsort() to bubble down starting at pos[ition] */void heapbubble(int pos, int ar[], int len);

int main(void) {int array[MAXARRAY];int i = 0;

/* load some random values into the array */for(i = 0; i < MAXARRAY; i++)array[i] = rand() % 100;

/* print the original array */printf("Before heapsort: ");for(i = 0; i < MAXARRAY; i++){printf(" %d ", array[i]);}printf("\n");

heapsort(array, MAXARRAY);

/* print the `heapsorted' array */printf("After heapsort: ");for(i = 0; i < MAXARRAY; i++){printf(" %d ", array[i]);

Page 18: Basic C Programs

}printf("\n");

return 0;}

void heapbubble(int pos, int array[], int len){int z = 0;int max = 0;int tmp = 0;int left = 0;int right = 0;

z = pos;for(;;) {left = 2 * z + 1;right = left + 1;

if(left >= len)return;else if(right >= len)max = left;else if(array[left] > array[right])max = left;elsemax = right;

if(array[z] > array[max])return;

tmp = array[z];array[z] = array[max];array[max] = tmp;z = max;}}

void heapsort(int array[], int len){int i = 0;int tmp = 0;

for(i = len / 2; i >= 0; --i)heapbubble(i, array, len);

Page 19: Basic C Programs

for(i = len - 1; i > 0; i--){tmp = array[0];array[0] = array[i];array[i] = tmp;heapbubble(0, array, i);}}

Program for demonstration of Tree Operations - INSERTION, INORDER . #include <stdio.h>#include <conio.h># include

struct node{struct node *left;int data;struct node *right;};

void main(){void insert(struct node **,int);void inorder(struct node *);void postorder(struct node *);void preorder(struct node *);struct node *ptr;int will,i,num;ptr = NULL;ptr->data=NULL;clrscr();

printf("Enter the number of terms you want to add to the tree.");scanf("%d",&will);

/* Getting Input */for(i=0;i{printf("Enter the item");scanf("%d",&num);insert(&ptr,num);}

getch();

Page 20: Basic C Programs

printf("INORDER TRAVERSAL");inorder(ptr);getch();printf("PREORDER TRAVERSAL");preorder(ptr);getch();printf("POSTORDER TRAVERSAL");postorder(ptr);getch();}

void insert(struct node **p,int num){

if((*p)==NULL){ printf("Leaf node created.");(*p)=malloc(sizeof(struct node));(*p)->left = NULL;(*p)->right = NULL;(*p)->data = num;return;}else{ if(num==(*p)->data){printf("REPEATED ENTRY ERRORVALUE REJECTED");return;}if(num<(*p)->data){printf("Directed to left link.");insert(&((*p)->left),num);}else{printf("Directed to right link.");insert(&((*p)->right),num);}}return;}

Page 21: Basic C Programs

void inorder(struct node *p){if(p!=NULL){inorder(p->left);printf("Data :%d",p->data);inorder(p->right);}elsereturn;}

void preorder(struct node *p){if(p!=NULL){printf("Data :%d",p->data);preorder(p->left);preorder(p->right);}elsereturn;}

void postorder(struct node *p){if(p!=NULL){postorder(p->left);postorder(p->right);printf("Data :%d",p->data);}elsereturn;} Program for demonstration of Tree Operations - INSERTION, INORDER . # include# include# include

Page 22: Basic C Programs

struct node{struct node *left;int data;struct node *right;};

void main(){void insert(struct node **,int);void inorder(struct node *);void postorder(struct node *);void preorder(struct node *);struct node *ptr;int will,i,num;ptr = NULL;ptr->data=NULL;clrscr();

printf("Enter the number of terms you want to add to the tree.");scanf("%d",&will);

/* Getting Input */for(i=0;i{printf("Enter the item");scanf("%d",&num);insert(&ptr,num);}

getch();printf("INORDER TRAVERSAL");inorder(ptr);getch();printf("PREORDER TRAVERSAL");preorder(ptr);getch();printf("POSTORDER TRAVERSAL");postorder(ptr);getch();}

void insert(struct node **p,int num){

Page 23: Basic C Programs

if((*p)==NULL){ printf("Leaf node created.");(*p)=malloc(sizeof(struct node));(*p)->left = NULL;(*p)->right = NULL;(*p)->data = num;return;}else{ if(num==(*p)->data){printf("REPEATED ENTRY ERRORVALUE REJECTED");return;}if(num<(*p)->data){printf("Directed to left link.");insert(&((*p)->left),num);}else{printf("Directed to right link.");insert(&((*p)->right),num);}}return;}

void inorder(struct node *p){if(p!=NULL){inorder(p->left);printf("Data :%d",p->data);inorder(p->right);}elsereturn;}

Page 24: Basic C Programs

void preorder(struct node *p){if(p!=NULL){printf("Data :%d",p->data);preorder(p->left);preorder(p->right);}elsereturn;}

void postorder(struct node *p){if(p!=NULL){postorder(p->left);postorder(p->right);printf("Data :%d",p->data);}elsereturn;}

Isort, insertion sort #include <stdio.h>

void isort(float arr[], int n);int fm(float arr[], int b, int n);

int main(void){float arr1[5] = {4.3, 6.7, 2.8, 8.9, 1.0};float arr2[5] = {4.3, 6.7, 2.8, 8.9, 1.0};int i = 0;

isort(arr2, 5);

printf("\nBefore\tAfter\n--------------\n");

for(i = 0; i < 5; i++)printf("%.2f\t%.2f\n", arr1[i], arr2[i]);

Page 25: Basic C Programs

return 0;}

int fm(float arr[], int b, int n) {int f = b;int c;

for(c = b + 1; c < n; c++)if(arr[c] < arr[f])f = c;

return f;}

void isort(float arr[], int n){int s, w;float sm;

for(s = 0; s < n - 1; s++){w = fm(arr, s, n);sm = arr[w];arr[w] = arr[s];arr[s] = sm;}}

Insertion sort in linked list struct lnode {char *str;struct lnode *next;};

struct lnode *insert(char *data, struct lnode *list);void free_list(struct lnode *list);void print_list(struct lnode *list);

int main(void) {char line[1024];struct lnode *list;

list = NULL;while((fgets(line, 1024, stdin)) != NULL)

Page 26: Basic C Programs

list = insert(line, list);

print_list(list);free_list(list);return 0;}

struct lnode *insert(char *data, struct lnode *list) {struct lnode *p;struct lnode *q;

/* create a new node */p = (struct lnode *)malloc(sizeof(struct lnode));/* save data into new node */p->str = strdup(data);

/* first, we handle the case where `data' should be the first element */if(list == NULL || strcmp(list->str, data) > 0) {/* apperently this !IS! the first element *//* now data should [be|becomes] the first element */p->next = list;return p;} else {/* search the linked list for the right location */q = list;while(q->next != NULL && strcmp(q->next->str, data) < 0) {q = q->next;}p->next = q->next;q->next = p;return list;}}

void free_list(struct lnode *list) {struct lnode *p;

while(list != NULL) {p = list->next;free(list);list = p;}}

void print_list(struct lnode *list) {struct lnode *p;

Page 27: Basic C Programs

for(p = list; p != NULL; p = p->next)printf("%s", p->str);}

UPPER, LOWER AND REVERSE WAP to find length of string and show it in upper, lower and reverse ordervoid main (){char str [20];clrscr ();printf ("Enter your name: ");gets (str);printf("\nLength is : %d",strlen(str));printf("\nUpper is : %s",strupr(str));printf("\nLower is : %s",strlwr(str));printf("\nReverese is : %s",strrev(str));getch ();}

[IMG]file:///C:/Users/JEYAKI%7E1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg[/IMG]

Linked List implementation #include"m_list.h"

void main(){list *first=NULL,*second=NULL,*third=NULL;int choice,i;char ch='y';while(1){clrscr();printf("case 1: Create list");printf("case 2: Add in the list");printf("case 3: Delete in the list");printf("case 4: Append two list");printf("

Page 28: Basic C Programs

case 5: show list");printf("case 6: Exit");printf("Enter your choice : ");scanf("%d",&choice);switch(choice){case 1: //create listwhile(ch!='n'){printf("Enter element : ");scanf("%d",&i);create(&first,i);printf("Enter element (y/n) : ");fflush(stdin);scanf("%c",&ch);}break;case 2: //add in the listint c;clrscr();printf("case 1: Add in Beginning");printf("case 2: Add in End");printf("case 3: Add After a given element");printf("case 4: Return to main menu");printf("Enter your choice : ");scanf("%d",&c);switch(c){case 1: add_at_beg(&first);break;case 2: add_at_end(&first);break;case 3: add_after_given_element(&first);break;case 4: break;}break;case 3:clrscr();printf("case 1: Delete in Beginning");printf("case 2: Delete in End");printf("case 3: Delete a specified element");printf("case 4: Return to main menu");printf("Enter your choice : ");

Page 29: Basic C Programs

scanf("%d",&c);switch(c){case 1: del_at_beg(&first);break;case 2: del_at_end(&first);break;case 3: del_specified_element(&first);break;case 4: break;}break;case 4:char ch='y';printf("Enter element in second list : ");while(ch!='n'){printf("Enter element : ");scanf("%d",&i);create(&second,i);printf("Enter element (y/n) : ");fflush(stdin);scanf("%c",&ch);}append(&third,first,second);

break;case 5: //show listclrscr();printf("case 1: List 1");printf("case 2: List 2");printf("case 3: List 3");printf("Enter choice : ");scanf("%d",&choice);switch(choice){case 1: show(first);break;case 2: show(second);break;case 3: show(third);break;}break;case 6: exit(0);

Page 30: Basic C Programs

}

}}

*********************************#include#include#include#includetypedef struct list{int info;struct list *next;};

//.................Function Declaration ...........

void create(struct list **p,int i){struct list *temp,*q=*p;temp=(struct list*)malloc(sizeof(struct list));temp->info=i;temp->next=NULL;if(*p==NULL)*p=temp;else{while(q->next!=NULL)q=q->next;q->next=temp;}}int append(struct list **t,struct list *f,struct list *s){struct list *temp=*t;if(f==NULL && s==NULL)return 0;while(f){create(t,f->info);f=f->next;}

Page 31: Basic C Programs

while(s){create(t,s->info);s=s->next;}

return 0;}void show(struct list *p){if(p==NULL)printf(" List is Empty");elsewhile(p){printf("%d ",p->info);p=p->next;}getch();}void add_at_beg(struct list **l){struct list *temp=(struct list *)malloc(sizeof(struct list));printf("Enter element : ");scanf("%d",&temp->info);temp->next=NULL;if(*l==NULL)*l=temp;else{temp->next=*l;*l=temp;}}void del_at_beg(struct list **l){list *temp;if(*l==NULL){printf("List is empty");getch();}else{

Page 32: Basic C Programs

temp=*l;*l=(*l)->next;free(temp);}}void add_at_end(struct list **l){list *temp,*p;temp=(struct list *)malloc(sizeof(struct list));printf("Enter element : ");scanf("%d",&temp->info);temp->next=NULL;if(*l==NULL)*l=temp;else{p=*l;while(p->next!=NULL)p=p->next;p->next=temp;}}

void del_at_end(struct list **l){list *temp,*p;if(*l==NULL){printf("List is Empty");getch();}else if((*l)->next==NULL){temp=*l;*l=NULL;free(temp);}else{p=*l;while(p->next->next!=NULL)p=p->next;temp=p->next->next;p->next=NULL;

Page 33: Basic C Programs

free(temp);}}void add_after_given_element(list **l){list *temp,*p;int m;temp=(struct list *)malloc(sizeof(struct list));printf("Enter element : ");scanf("%d",&temp->info);printf("Enter position after which element inserted : ");scanf("%d",&m);temp->next=NULL;if(*l==NULL)*l=temp;else{p=*l;while(p->next!=NULL)if(p->info==m)break;elsep=p->next;

temp->next=p->next;p->next=temp;

}}void del_specified_element(list **l){list *temp,*p,*q;int m;printf("Enter element which is deleted : ");scanf("%d",&m);if(*l==NULL){printf("List is Empty");getch();}else if((*l)->next!=NULL && (*l)->info==m){

Page 34: Basic C Programs

temp=*l;*l=(*l)->next;free(temp);}else if((*l)->next==NULL && (*l)->info==m){temp=*l;*l=NULL;free(temp);}else{p=*l;while(p!=NULL)if(p->info==m)break;else{q=p;p=p->next;}temp=p;q->next=p->next;free(temp);}}

UPPER, LOWER AND REVERSE WAP to find length of string and show it in upper, lower and reverse ordervoid main (){char str [20];clrscr ();printf ("Enter your name: ");gets (str);printf("\nLength is : %d",strlen(str));printf("\nUpper is : %s",strupr(str));printf("\nLower is : %s",strlwr(str));printf("\nReverese is : %s",strrev(str));getch ();}

[IMG]file:///C:/Users/JEYAKI%7E1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg[/IMG]

Page 35: Basic C Programs

Matrix Multiplication void main(){int row1=0,col1=1,row2=0,col2=0,**matrix1,**matrix2,**result;

clrscr();printf(" Enter number of row for first matrix ");scanf("%d",&row1);

while (col1!=row2){printf(" Enter number of column for first matrix ");scanf("%d",&col1);

printf(" Enter number of row for second matrix ");scanf("%d",&row2);

if (col1!=row2){clrscr();printf("Column number of first matrix must be same as the row number of second matrix");}

}

printf(" Enter number of column for second matrix ");scanf("%d",&col2);

matrix1=init(matrix1,row1,col1);matrix2=init(matrix2,row2,col2);/* setting values in matrix */printf("First matrix \n");set(matrix1,row1,col1);printf("Second matrix \n");set(matrix2,row2,col2);

Page 36: Basic C Programs

/* printint matrix */clrscr();printf(" [ First matrix ]\n");get(matrix1,row1,col1);printf(" [ Second matrix ]\n");get(matrix2,row2,col2);

printf(" [ Multiplication Result ]\n");result=mul(matrix1,matrix2,row1,col2,col1);get(result,row1,col2);printf("\n\t\t Thanks from debmalya jash");getch();free(matrix1);free(matrix2);fress(result);

} /* end main */

/* to initialize matrix */int** init(int** arr,int row,int col){int i=0,j=0;

arr=(int**)malloc(sizeof(int)*row*col);

for(i=0;i{for(j=0;j{*((arr+i)+j)=(int*)malloc(sizeof(int));*(*(arr+i)+j)=0;}}return arr;}

/* to set value in matrix */int** set(int** arr,int row,int col){int i=0,j=0,val=0;

Page 37: Basic C Programs

for(i=0;i{for(j=0;j{printf("Enter value for row %d col %d :",(i+1),(j+1));scanf("%d",&val);*(*(arr+i)+j)=val;}}return arr;}

/* print values of the passed matrix */void get(int** arr,int row,int col){int i=0,j=0;

for(i=0;i{for(j=0;j{printf("%d\t",*(*(arr+i)+j));}printf("\n");}}

/* mutiply two matrices and return the resultant matrix */int** mul(int** arr1,int** arr2,int row,int col,int col1){int **result,i=0,j=0,k=0;

result=init(result,row,col);

for(i=0;i{for(j=0;j{for(k=0;k{printf("%dX%d(%d)",*(*(arr1+i)+k),*(*(arr2+k)+j),( *(*(arr1+i)

Page 38: Basic C Programs

+k))*(*(*(arr2+k)+j)));*(*(result+i)+j)+=(*(*(arr1+i)+k))*(*(*(arr2+k)+j) );

if (k!=(col1-1))printf("+");}printf("\t");}printf("\n");}return result;

Merge sort - linked list struct node {int number;struct node *next;};

/* add a node to the linked list */struct node *addnode(int number, struct node *next);/* preform merge sort on the linked list */struct node *mergesort(struct node *head);/* merge the lists.. */struct node *merge(struct node *head_one, struct node *head_two);

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

head = NULL;/* insert some numbers into the linked list */for(i = 0; i < 10; i++)head = addnode(test[i], head);

/* sort the list */head = mergesort(head);

/* print the list */printf(" before after\n"), i = 0;for(current = head; current != NULL; current = current->next)printf("%4d\t%4d\n", test[i++], current->number);

Page 39: Basic C Programs

/* free the list */for(current = head; current != NULL; current = next)next = current->next, free(current);

/* done... */return 0;}

/* add a node to the linked list */struct node *addnode(int number, struct node *next) {struct node *tnode;

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

if(tnode != NULL) {tnode->number = number;tnode->next = next;}

return tnode;}

/* preform merge sort on the linked list */struct node *mergesort(struct node *head) {struct node *head_one;struct node *head_two;

if((head == NULL) || (head->next == NULL))return head;

head_one = head;head_two = head->next;while((head_two != NULL) && (head_two->next != NULL)) {head = head->next;head_two = head->next->next;}head_two = head->next;head->next = NULL;

return merge(mergesort(head_one), mergesort(head_two));}

/* merge the lists.. */struct node *merge(struct node *head_one, struct node *head_two) {struct node *head_three;

Page 40: Basic C Programs

if(head_one == NULL)return head_two;

if(head_two == NULL)return head_one;

if(head_one->number < head_two->number) {head_three = head_one;head_three->next = merge(head_one->next, head_two);} else {head_three = head_two;head_three->next = merge(head_one, head_two->next);}

return head_three;}

SUM,SUB,PRODUCT,DIVISION WAP to Sum, Subtract, Multiply & Division of two numbers (5 Variables)

#includevoid main (){int a,b,c,d,e,f;clrscr();printf ("Enter A: ");scanf ("%d",&a);printf ("Enter B: ");scanf ("%d",&b);c=a+b;d=a-b;e=a*b;f=a/b;printf ("\nSum is : %d",c);printf ("\nSubtraction is : %d",d);printf ("\nMultiplication is : %d",e);printf ("\nDivision is : %d",f);getch ();}

Output[IMG]file:///C:/Users/JEYAKI%7E1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg[/IMG]

Page 41: Basic C Programs

Method #2

WAP to Sum, Subtract, Multiply & Division of two numbers (3 Variables)

#includevoid main (){int a,b,c;clrscr();printf ("Enter A: ");scanf ("%d",&a);printf ("Enter B: ");scanf ("%d",&b);c=a+b;printf ("\nSum is %d",c);c=a-b;printf ("\nSubtraction is %d",c);c=a*b;printf ("\nMultiplication is %d",c);c=a/b;printf ("\nDivision is %d",c);getch ();}

Output

[IMG]file:///C:/Users/JEYAKI%7E1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg[/IMG]

Ohms law example In C #include#include#includeint main(){char ch;float voltage , current , resistance , result;printf("Ohms law calculator.\n");printf("Please choose from following calculcations.\n");printf("1. choose 1 to calculate the voltage.\n");printf("2. choose 2 to calculate the current.\n");printf("3. choose 3 to calculate the resistance.\n");

Page 42: Basic C Programs

printf("Anything else to quit.\n");scanf("%c",&ch);switch(ch){case '1' :printf("please enter the current in amps.\n");scanf("%f",¤t);printf("Now enter the resistance in ohms.\n");scanf("%f",&resistance);result = current * resistance;printf("The voltage is %0.2f volts.\n",result);break;case '2' :printf("please enter the voltage in volts.\n");scanf("%f",&voltage);printf("Now enter the resistance in ohms.\n");scanf("%f",&resistance);result = voltage / resistance;printf("The current is %0.2f amps.\n",result);break;case '3' :printf("please enter the voltage in volts.\n");scanf("%f",&voltage);printf("Now enter the current in amps.\n");scanf("%f",¤t);result = voltage / current;printf("The resistance is %0.2f ohms.\n",result);break;default :exit(0);break;}return 0;}

Print a double pyramid void main(void){clrscr();int i,j,k,l,b,n;printf("Enter the value of N:");scanf("%d",&n);for(i=0;i{printf("");

Page 43: Basic C Programs

for(l=0;lprintf(" ");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{printf("");for(l=n-2;l>i;l--)printf(" ");for(j=b;j<=n;j++)printf("%d",j);for(k=n-1;k>=b;k--)printf("%d",k);b--;}getch();}

Progam that gives length of side of a Triangle //Progam that gives all details of a Triangle given the lengths of its sides#include#include#include#include

main(){clrscr();float a,b,c,S,D,A,B,C,Area,R;printf("Enter the lengths of the three sides of the triangle :");scanf("%f%f%f",&a,&b,&c);

S = (a+b+c)/2.0; // S is the semiperimeter of the triangleD = S*(S-a)*(S-b)*(S-c);//D is the square of the area of the triangleif(D<=0){printf("The triangle cannot be formed");getch();exit(0);}

Page 44: Basic C Programs

if((a==b || b==c || c==a) && !(a==b && b==c && c==a))// this complex logic is to eliminate interpretting a triangle with allthree// sides equal as both isosceles and equilateral.printf("The triangle is ISOSCELES");if(a==b && b==c && c==a)printf("The triangle is EQUILATERAL Type");if(a!=b && b!=c && c!=a)printf("The triangle is SCALENE");

Area = sqrt(D);R = (a*b*c)/(4.0*Area);printf("PERIMETER = %.2f units",(2.0*S));printf("AREA = %.2f sq.units",Area);printf("CIRCUM RADIUS = %.2f units",R);// using sine rule,we get...A = (180.0/3.1415926)*asin(a/(2.0*R));// value of pi should be upto 7B = (180.0/3.1415926)*asin(b/(2.0*R));// decimal places of accuracy andalsoC = (180.0/3.1415926)*asin(c/(2.0*R));// note that the 7th decimal place// 6 and not 7 as it had to be if wereif(A==90.0 || B==90.0 || C==90.0)// approximated to 7 decimalplacesprintf("The triangle is RIGHT ANGLED");if(A<90.0 && B<90.0 && C<90.0)printf("The triangle is ACUTE ANGLED");if(A>90.0 || B>90.0 || C>90.0)printf("The triangle is OBTUSE ANGLED");

printf("The angles are as follows :");printf("A = %.2f degrees",A);printf("B = %.2f degrees",B);printf("C = %.2f degrees",C);printf("Where A,B,C stand for angles opposite to sides%.2f,%.2f,%.2f",a,b,c);printf(" respectively");

getch();return 0;}

Program for conversion of Decimal to Roman Number #include

main()

Page 45: Basic C Programs

{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");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)

Page 46: Basic C Programs

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)printf("IX");getch();}

Program for demonstration of Tree Operations - INSERTION, INORDER . #include <stdio.h>#include <conio.h># include

struct node

Page 47: Basic C Programs

{struct node *left;int data;struct node *right;};

void main(){void insert(struct node **,int);void inorder(struct node *);void postorder(struct node *);void preorder(struct node *);struct node *ptr;int will,i,num;ptr = NULL;ptr->data=NULL;clrscr();

printf("Enter the number of terms you want to add to the tree.");scanf("%d",&will);

/* Getting Input */for(i=0;i{printf("Enter the item");scanf("%d",&num);insert(&ptr,num);}

getch();printf("INORDER TRAVERSAL");inorder(ptr);getch();printf("PREORDER TRAVERSAL");preorder(ptr);getch();printf("POSTORDER TRAVERSAL");postorder(ptr);getch();}

void insert(struct node **p,int num){

Page 48: Basic C Programs

if((*p)==NULL){ printf("Leaf node created.");(*p)=malloc(sizeof(struct node));(*p)->left = NULL;(*p)->right = NULL;(*p)->data = num;return;}else{ if(num==(*p)->data){printf("REPEATED ENTRY ERRORVALUE REJECTED");return;}if(num<(*p)->data){printf("Directed to left link.");insert(&((*p)->left),num);}else{printf("Directed to right link.");insert(&((*p)->right),num);}}return;}

void inorder(struct node *p){if(p!=NULL){inorder(p->left);printf("Data :%d",p->data);inorder(p->right);}elsereturn;}

void preorder(struct node *p)

Page 49: Basic C Programs

{if(p!=NULL){printf("Data :%d",p->data);preorder(p->left);preorder(p->right);}elsereturn;}

void postorder(struct node *p){if(p!=NULL){postorder(p->left);postorder(p->right);printf("Data :%d",p->data);}elsereturn;} Program for demonstration of Tree Operations - INSERTION, INORDER . # include# include# include

struct node{struct node *left;int data;struct node *right;};

void main(){void insert(struct node **,int);void inorder(struct node *);void postorder(struct node *);void preorder(struct node *);struct node *ptr;int will,i,num;ptr = NULL;

Page 50: Basic C Programs

ptr->data=NULL;clrscr();

printf("Enter the number of terms you want to add to the tree.");scanf("%d",&will);

/* Getting Input */for(i=0;i{printf("Enter the item");scanf("%d",&num);insert(&ptr,num);}

getch();printf("INORDER TRAVERSAL");inorder(ptr);getch();printf("PREORDER TRAVERSAL");preorder(ptr);getch();printf("POSTORDER TRAVERSAL");postorder(ptr);getch();}

void insert(struct node **p,int num){

if((*p)==NULL){ printf("Leaf node created.");(*p)=malloc(sizeof(struct node));(*p)->left = NULL;(*p)->right = NULL;(*p)->data = num;return;}else{ if(num==(*p)->data){printf("REPEATED ENTRY ERRORVALUE REJECTED");return;

Page 51: Basic C Programs

}if(num<(*p)->data){printf("Directed to left link.");insert(&((*p)->left),num);}else{printf("Directed to right link.");insert(&((*p)->right),num);}}return;}

void inorder(struct node *p){if(p!=NULL){inorder(p->left);printf("Data :%d",p->data);inorder(p->right);}elsereturn;}

void preorder(struct node *p){if(p!=NULL){printf("Data :%d",p->data);preorder(p->left);preorder(p->right);}elsereturn;}

void postorder(struct node *p){if(p!=NULL)

Page 52: Basic C Programs

{postorder(p->left);postorder(p->right);printf("Data :%d",p->data);}elsereturn;}

Program for finding the transpose of a martix in sparse form #include <stdio.h>#include <conio.h>int a[100][100],b[100][100];

void main(){int i,m,n,p,q,col,t;clrscr();printf("Enter the no. of rows");scanf("%d", &a[0][0]);printf("Enter the no. of cols");scanf("%d", &a[0][1]);printf("Enter the number of non zero terms");scanf("%d", &a[0][2]);

for(i=1;i<=a[0][2];i++){printf("Enter the value (that is non zero)");scanf("%d",&a[i][2]);printf("Enter the row for %d : ",a[i][2]);scanf("%d",&a[i][0]);printf("Enter the col for %d : ",a[i][2]);scanf("%d",&a[i][1]);}

/* Printing for testing the sparse input */printf("*****************************The martix you entered is************************

Row Col Value ");for ( i = 0;i <= a[0][2];i++){printf("%d %d %d " , a[i][0],a[i][1],a[i][2]);

Page 53: Basic C Programs

}

/* Calling function for evaluation of transpose */

m = a[0][0];n = a[0][1];t = a[0][2];

b[0][0] = n;b[0][1] = m;b[0][2] = t;

q=1;

for( col = 1; col <=n; col++){for(p = 1; p<=t;p++){if(a[p][1] == col){b[q][0] = a[p][1];b[q][1] =a[p][0];b[q][2] = a[p][2];q++;}}} //end of outer for loop

/* Printing the transposed matrix */

getch();printf("The Transpose of the above matrix is ");for ( i = 0;i <= a[0][2];i++){printf("%d %d %d " , b[i][0],b[i][1],b[i][2]);}getch();}

Program for rotating circles using maths Function #include "stdio.h"#include "graphics.h>"#include "conio.h>"#include "dos.h"#include "stdlib.h"

Page 54: Basic C Programs

#include "math.h"#include "iostream.h"main(){int gd=DETECT,gm,x=295,y=222,a,j,i;initgraph(&gd,&gm,"c:\tc\bgi");setcolor(14);outtextxy(x-10,y,"POP");while(!kbhit()){i++;

delay(1);setcolor(16);circle(x+(200*cos(i)),y+(200*sin(i)),8);setcolor(10);circle(x+(200*cos(i+40)),y+(200*sin(i+40)),8);//set2setcolor(16);circle(x+(160*sin(i)),y+(160*cos(i)),7); //anti clockwise:-sin,cosinterchangedcircle(x+(160*sin(i)),y+(160*cos(i)),5);setcolor(i);circle(x+(160*sin(i+40)),y+(160*cos(i+40)),7);circle(x+(160*sin(i+40)),y+(160*cos(i+40)),5);

setcolor(16);circle(x+(120*sin(i)),y+(120*cos(i)),6);//anti clockwise:-sin,cosinterchangedsetcolor(12);circle(x+(120*sin(i+40)),y+(120*cos(i+40)),6);

setcolor(16);circle(x+(90*cos(i)),y+(90*sin(i)),5);setcolor(i);circle(x+(90*cos(i+40)),y+(90*sin(i+40)),5);}getch();return 0;}

PROGRAM TO ARRANGE THE ELEMENTS IN ARRAY IN ASSENDING ORDER /*ARRANGE THE ELEMENTS IN ARRAY IN ASSENDING ORDER*/#include "stdio.h"

Page 55: Basic C Programs

#include "conio.h"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;iscanf("%d",&a[i]);for(i=0;i{for(j=i+1;j{if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}printf("%4d",a[i]);}getch();}

program to calculate sum all of the elments in an array #includevoid print_arr(int myArray[], int elements);int sum_arr(int myArray[], int elements);

int main(void){int myArray[5] = {78,34,25,98,12 };int sum;printf("Array info: ");print_arr(myArray,5);sum = sum_arr(myArray,5);printf("The sum of the array is : %d\n",sum);return 0;}

void print_arr(int myArray[], int elements){int i;

Page 56: Basic C Programs

for(i = 0;i < elements;i++){printf("%d ",myArray[i]);}printf("\n");}

int sum_arr(int myArray[], int elements){int i, sum = 0;for(i = 0;i < elements;i++){sum = sum + myArray[i];}return(sum);}

Program to compute difference between two dates #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(year2ref = year2;dd1=0;dd1=func1(mon1);for(i=ref;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{if(i%4==0)

Page 57: Basic C Programs

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();}

int func1(x) //x for month y for dd{ int y=0;switch(x){case 1: y=0; break;case 2: y=31; break;case 3: y=59; break;case 4: y=90; break;case 5: y=120;break;case 6: y=151; break;case 7: y=181; break;case 8: y=212; break;case 9: y=243; break;case 10:y=273; break;case 11:y=304; break;case 12:y=334; break;default: printf("Error encountered"); exit(1);}return(y);}

Program to construct a pyramid of any input numbers main(){int n,row=1,col=40,i=0,j,k=0,count=1;int a[10];clrscr();i=n-1;printf("Pyramid of how many numbers? ");scanf("%d",&n);for (j=0;j\<=n;j++){printf("Enter no.:- ");

Page 58: Basic C Programs

scanf("%d",&a[j]);}clrscr();for (row=n;row>=1;row--){k=0;k=40-(4*(row-1));i=row-1;for (col=40;col>=k;col=(col-4)){gotoxy(col,row);printf("%d",a[i]);--i;}}

for (count=n;count>=1;count--){k=0;k=40+(4*(count-1));i=count-1;for (col=40;col<=k;col=(col+4)){gotoxy(col,count);printf("%d",a[i]);--i;}}getch();}