basic c programs
TRANSCRIPT
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;};
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# 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];
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]
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)
{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
#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);">
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;
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;
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(){
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;
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]);
}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);
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();
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;}
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
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){
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){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]);
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)
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;
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("
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 : ");
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);
}
}}
*********************************#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;}
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{
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;
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){
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]
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);
/* 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;
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)
+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);
/* 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;
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]
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");
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("");
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);}
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()
{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)
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
{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){
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)
{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;
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;
}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)
{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]);
}
/* 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"
#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"
#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;
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)
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.:- ");
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();}