0% found this document useful (0 votes)
346 views

Basic C Programs

The document contains several C code examples demonstrating different programming concepts: 1) The first example shows a program that counts the number of consonants in a string by iterating through the string and comparing each character to a list of vowels. 2) The second example demonstrates insertion sort on a linked list by inserting nodes in the correct sorted position. 3) Additional examples include bubble sort routines for arrays and linked lists, a binary search algorithm, and examples using constants, comparison operators, and calculating power from voltage and current.

Uploaded by

get2ganesh
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 DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
346 views

Basic C Programs

The document contains several C code examples demonstrating different programming concepts: 1) The first example shows a program that counts the number of consonants in a string by iterating through the string and comparing each character to a list of vowels. 2) The second example demonstrates insertion sort on a linked list by inserting nodes in the correct sorted position. 3) Additional examples include bubble sort routines for arrays and linked lists, a binary search algorithm, and examples using constants, comparison operators, and calculating power from voltage and current.

Uploaded by

get2ganesh
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 DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 58

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> #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; }

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 (); } 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;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 #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 #include int 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 #include void 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); else printf("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); else n=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; else

d3=0; } else d2=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; else max = 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 ERROR VALUE 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); } else return; }

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

void postorder(struct node *p) { if(p!=NULL) { postorder(p->left); postorder(p->right); printf(" Data :%d",p->data); } else return; } 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 ERROR VALUE 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); } else return; }

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

preorder(p->left); preorder(p->right); } else return; }

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

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 order void 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 list while(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 list int 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 list clrscr(); 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 #include typedef 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"); else while(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; else p=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 order void 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) #include void 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) #include void 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 #include int 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;l printf(" "); 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 triangle D = S*(S-a)*(S-b)*(S-c);//D is the square of the area of the triangle if(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 all three // 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 7 B = (180.0/3.1415926)*asin(b/(2.0*R));// decimal places of accuracy and also C = (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 were if(A==90.0 || B==90.0 || C==90.0) // approximated to 7 decimalplaces printf("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 ERROR VALUE 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); } else return; }

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

void postorder(struct node *p) { if(p!=NULL) { postorder(p->left); postorder(p->right); printf(" Data :%d",p->data); } else return; } 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 ERROR VALUE 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); } else return; }

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

void postorder(struct node *p) { if(p!=NULL) { postorder(p->left); postorder(p->right); printf(" Data :%d",p->data); } else return; } 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); //set2 setcolor(16); circle(x+(160*sin(i)),y+(160*cos(i)),7); //anti clockwise:-sin,cos interchanged circle(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,cos interchanged setcolor(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;i scanf("%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 #include void 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(year2 ref = 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(); }

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy