Close Back

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>
#include<malloc.h>

int *get_D_array();
void main(void);
void percentage(void);
void print_rajesh(void);
int dataval();

int *invalid;

void main()
{
	int i,j,n,found = 0,*array,k;
	char input[25];
	clrscr();
	printf("\n<----------------------------------------->");
	printf("\n| Dynamic memory allocation demonstartion |");
	printf("\n<----------------------------------------->");
	do
	{
		printf("\n\nHow many numbers:");
		scanf("%s",input);
	}
	while(dataval(input) == 0);
	sscanf(input,"%d",&n);
	array = get_D_array(n,1);
	printf("\n The numbers u entered were:\n");
	for(k = 0 ; *(invalid + k) != -1 ; k++);
	for(i=0;i<n;i++)
	{
		found = 0;
		for(j = 0 ; j < k ; j++)
		{
			if(*(invalid + j) == i)
				found = 1;
/* instead can use ------------	*(array + i) = 0;*/
		}
		if(found == 0)
		{
			printf("\t %d",*(array+i));
			delay(300);
		}
	}

/*	This is jus for fun ;)		*/

	printf("\nThe memory is being freed.....\n");
	percentage();
	get_D_array(1,2);
	printf("\nThe memory is now freed!");

/*	Fun ends ;)		*/

	printf("\n\nWaiting for you to hit a key........");
	getch();
	print_rajesh();
	return;
}
int *get_D_array(num,mes)
int num,mes;
{
	int i,j = 0;
	static int *array;
	char *input;
	*invalid = -1;
	switch(mes)
	{
		case 1:
		array = malloc(sizeof(int *)*num);
		printf("\nEnter the numbers:");
		for(i=0;i<num;i++)
		{
			scanf("%s",input);
			if(dataval(input) != 0)
				sscanf(input,"%d",(array+i));
			else
			{
				printf("\nThe number in position %2d is invalid\n",i+1);
				invalid = malloc((sizeof(int *))*1);
				*(invalid+j) = i;
				j++;
			}
		}
		*(invalid + j) = -1;
		return array;

		case 2:
		free(array);
		free(invalid);
		return;
	}
}
void print_rajesh()
{
	clrscr();
	printf("\nThis program made by :");
	printf("\n\n\n\n\n\007");
	printf(",##########.                   ,####.                          ,####.\n");
	printf(":#############.                `####;                          :####.\n");
	printf(":#####. :#####.                                                :####.\n");
	printf(":#############;   `#########.  ,####.  ,#######.    ,########. :###########.\n");
	printf(":############;          :####. :####. ,###. :###.  ,####.  :#. :###########.\n");
	printf(":##########.       :#########. :####.,####. :####.`##########. :####. :####.\n");
	printf(":###########.   ,############. :####.:###########;  `#########.:####. :####.\n");
	printf(":############.  :#####. :####. :####.`#####.            :#####;:####. :####.\n");
	printf(":#####. `######  ############. :####. `#########.  ,#########; :####. :####.\n");
	printf("`#####;  `######; `##########; :####.     `#####;  `#######;   `####; `####;\n");
	printf("                              #####");
	printf("\n\n\n\tRajesh _ThE gReAt in 2k.....\n\n\n\t\t\tHit any key to continue.....");
	for(;!kbhit();)
	{
		printf("\b");
		delay(100);
		printf("\b|");
		delay(100);
		printf("\b/");
		delay(100);
		printf("\b-");
		delay(100);
	}
	printf("\b  ");
	return;
}
void percentage()
{
	printf("\4");
	printf("           010%%");
	printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
	delay(150);
	printf("\4");
	printf("          020%%");
	printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
	delay(150);
	printf("\4");
	printf("         030%%");
	printf("\b\b\b\b\b\b\b\b\b\b\b\b\b");
	delay(150);
	printf("\4");
	printf("        040%%");
	printf("\b\b\b\b\b\b\b\b\b\b\b\b");
	delay(150);
	printf("\4");
	printf("       050%%");
	printf("\b\b\b\b\b\b\b\b\b\b\b");
	delay(150);
	printf("\4");
	printf("      060%%");
	printf("\b\b\b\b\b\b\b\b\b\b");
	delay(150);
	printf("\4");
	printf("     070%%");
	printf("\b\b\b\b\b\b\b\b\b");
	delay(150);
	printf("\4");
	printf("    080%%");
	printf("\b\b\b\b\b\b\b\b");
	delay(150);
	printf("\4");
	printf("   090%%");
	printf("\b\b\b\b\b\b\b");
	delay(150);
	printf("\4");
	printf("  100%%");
	printf("\b\b\b\b\b\b");
	return;
}
int dataval(input)
char *input;
{
	int i,n;			/*i = index for FOR loop*/
	for(n = 0;*(input+n) != '\0';n++);	/*body less FOR loop to find null char*/
	for(i = 0;i < n;i++)
	{
		if(isdigit(*(input+i)))
			return 1;
		else
			return 0;
	}
}