Thursday, 18 January 2018

C program to sort numbers using Insertion Sort

#include<stdio.h>
#include<stdlib.h>
void swap(int *a,int *b)
{
int temp=*a;
*a=*b;
*b=temp;

}
void insertionSort(int *ar,int size)
{
int i,k,j,temp;
for(i=0;i<size;i++)
{
temp=ar[i];
j=i-1;
while(ar[j]>ar[i] && j>=0)
{

swap(&ar[j],&ar[i]);
i=j;
j--;

}

}
}

void printArray(int *arr,int size){
int i;

for(i=0;i<size;i++)
printf("%d\t",arr[i]);


}

int main(){

int i,size,*arr;
arr=(int *)malloc(size*sizeof(int));
printf("\nEnter the size of array:");
scanf("%d",&size);
printf("\nEnter the elements of array:");
for(i=0;i<size;i++){
scanf("%d",&arr[i]);
}
printArray(arr,size);
insertionSort(arr,size);
printArray(arr,size);
return 0;
}

C Program to sort the numbers using Heap Sort

#include<stdio.h>
#include<stdlib.h>
void swap(int *a,int *b){
int temp=*a;
*a=*b;
*b=temp;
}
void heapify(int *ar,int i,int size)
{
int largest=i;
int l=2*i;
int r=2*i+1;
if(l<size && ar[l]>ar[largest])
largest=l;
if(r<size && ar[r]>ar[largest])
largest=r;
if(largest!=i)
{swap(&ar[i],&ar[largest]);heapify(ar,largest,size);}
}
void heapSort(int *ar,int size){
int i;
for(i=(size/2)-1;i>=0;i--)
heapify(ar,i,size);
for(i=size-1;i>=0;i--)
{
swap(&ar[0],&ar[i]);

heapify(ar,0,i);
}
}
void printArray(int *ar,int size)
{
int i;
for(i=0;i<size;i++)
{
printf("%d\t",ar[i]);
}
printf("\n");
}

int main()
{
int i,n;
printf("Enter the size of array:");
scanf("%d",&n);
int *ar=(int *)malloc(n*sizeof(int));
printf("\nEnter the elements of array:");
for(i=0;i<n;i++)
scanf("%d",&ar[i]);
printArray(ar,n);
heapSort(ar,n);
printArray(ar,n);
return 0;
}

C Program to find first repeating character in a string

#include<stdio.h>
#include<string.h>
char FirstRepeatedChar(char *str){
int i;
int len=strlen(str)-1;
int count[256];
for(i=0;i<256;i++)
count[i]=0;

for(i=0;i<len;i++)
{
if(count[str[i]]==1){

printf("%c",str[i]);
break;
}
else count[str[i]]++;
}
if(i==len)
printf("\nNo characters found");
return 0;
}

int main()
{
char str[100];
int len;
char c;
printf("ENter string:");
fgets(str,100,stdin);
len=strlen(str)-1;
c=FirstRepeatedChar(str);


return 0;

}

C Program to reverse a string.

#include<stdio.h>
#include<string.h>
void rev(char str[],int start,int end)
{
char tmp;
if(start<=end)
{
tmp=str[start];
str[start]=str[end];
str[end]=tmp;
rev(str,start+1,end-1);
}

}

int main()
{
char str[100];
printf("Enter the string:\n");
fgets(str,100,stdin);
int n;
n=strlen(str);
rev(str,0,n-1);
fputs(str,stdout);

return 0;
}

C Program to Sort Numbers using Bubble Sort

#include<stdio.h>
#include<stdlib.h>
void swap(int *a,int *b)
{
int temp=*a;
*a=*b;
*b=temp;

}
void bubbleSort(int *arr,int size)
{
int i,j,swapped;
for(i=0;i<size-1;i++)
{ swapped=0;
for(j=0;j<size-i-1;j++)
{
if(arr[j]>arr[j+1])
{
swap(&arr[j],&arr[j+1]);
swapped=1;
}

}
if(!swapped)break;
}
}

void printArray(int *arr,int size){
int i;
printf("\nArray is :");
for(i=0;i<size;i++)
printf("%d\t",arr[i]);


}

int main(){

int i,size,*arr;
arr=(int *)malloc(size*sizeof(int));
printf("\nEnter the size of array:");
scanf("%d",&size);
printf("\nEnter the elements of array:");
for(i=0;i<size;i++){
scanf("%d",&arr[i]);
}
printArray(arr,size);
bubbleSort(arr,size);
printArray(arr,size);
return 0;
}

C Program to search numbers using Binary Search.

/*Binary Serach for sorted array
By-Shivam Tripathi
*/
#include<stdio.h>
#include<stdlib.h>
/*The elements of array should be sorted in Ascending order.*/

int binSearch(int *ar,int start,int end,int num)
{
if(end>=start){

int mid=(start+end)/2;
if(ar[mid]==num)
return (mid+1);
else if(ar[mid]<num)
return binSearch(ar,mid+1,end,num);
else
return binSearch(ar,start,mid-1,num);
}
return -1;
}
int main()
{
int n,i,pos,num;
printf("\nEnter the size of array:");
scanf("%d",&n);
printf("\nEnter element to search:");
scanf("%d",&num);
int *ar=(int *)malloc(n*sizeof(int));
printf("\nEnter the elements:");
for(i=0;i<n;i++)
{
scanf("%d",ar+i);
}

pos=binSearch(ar,0,n-1,num);
if(num>0)
printf("Location of element in array:%d",pos);
return 0;
}

Sunday, 3 December 2017

C Program to count number of lines and exit when user type '~'

#include<stdio.h>

void main(){

int lineCount,temp;
while((temp=getchar())!=EOF){

if(temp=='\n')
++lineCount;
if(temp=='~')
break;
}

printf("%d",lineCount);

}