Write a program to perform Knapsack Problem using Greedy Solution

#include<stdio.h>
#include<conio.h>
int max(int a, int b) { return (a > b)? a : b; }
int knapSack(int W, int wt[], int pt[], int n){
	if (n == 0 || W == 0)
		 return 0;
	if (wt[n-1] > W)
		 return knapSack(W, wt, pt, n-1);
	else return max( pt[n-1] + knapSack(W-wt[n-1], wt, pt, n-1),
							  knapSack(W, wt, pt, n-1) );
}
/*
//WRITE THIS COMMENTED FUNCTION ONLY IF NEEDED TO UNDERSTAND THE PROCESS OF PICKING
int knapSack(int W, int wt[], int pt[], int n){
	int i, w;
	int K[MAX_SIZE][MAX_SIZE];
	for (i = 0; i <= n; i++){
		 for (w = 0; w <= W; w++){
			  if (i==0 || w==0)
					K[i][w] = 0;
			  else if (wt[i-1] <= w)
					  K[i][w] = max(pt[i-1] + K[i-1][w-wt[i-1]],  K[i-1][w]);
			  else
					  K[i][w] = K[i-1][w];
		 }
	}
	return K[n][W];
}
*/
void main(){
	int pt[20],wt[20];
	int W;
	int n,i,j;
	int max_profit;
	int knapSacktems[20];
	int v[20][20];
	clrscr();
	printf("\nENTER THE TOTAL NUMBER OF ITEMS TO INCLUDE\n");
	scanf("%d",&n);

	printf("\nENTER ALL ITEMS WITH ITS WEIGHT AND PROFIT\n");
	for(i=0;i<n;i++){
		scanf("%d%d",&wt[i],&pt[i]);
		knapSacktems[i]=0;
	}
	printf("\nENTER THE MAXIMUM WEIGHT OF THE BAG\n");
	scanf("%d",&W);
	printf("Knapsack Tabulation\n\n");
	printf("p|w\t");
	for(j=0;j<=W;j++){
		printf("%d\t",j);
	}
	printf("\n=====================================================\n");

	for(i=0;i<n;i++){
		printf("%d|%d\t",pt[i],wt[i]);
		for(j=0;j<=W;j++){
			v[i][j]=knapSack(j, wt, pt, i+1);
			printf("%d\t",v[i][j]);
		}
		printf("\n");
	}
	printf("Max profit = %d\n\n",knapSack(W, wt, pt, n));
	printf("Items are selected as shown below\n");
	max_profit=v[n-1][W];
	for(;max_profit>0;){
		for(i=0;i<n;i++){
			for(j=0;j<=W;j++){
				if(v[i][j]==max_profit && max_profit>0){
					knapSacktems[i]=1;
					max_profit=max_profit-pt[i];
					i=-1;
					break;
				}
			}
		}
	}
	for(i=0;i<n;i++){
		printf("K %d = %d\n",i+1,knapSacktems[i]);
	}
	getch();
}