Gauss Elimination method in C language using Lower triangular matrix

This is a simple C language program that calculates solution of n-linear equations using Non-pivotal Gauss Elimination method. It uses lower triangular matrix to do so, for upper triangular matrix visit here.

#include<stdio.h>
#include<conio.h>
 
float matrix[10][10], m, temp[10];
int i, j, k, n;
 
void lower_traingularisation() {
    for (i=n-1; i>0; i--)
        for (j=i-1; j>=0; j--) {
            m	= matrix[j][i]/matrix[i][i];
            for (k=0; k<n+1; k++) {
                matrix[j][k]	= matrix[j][k]-(m*matrix[i][k]);
            }
        }
} //lower_traingularisation
 
void back_subsitution() {
    for (i=0; i<n; i++) {
        m	= matrix[i][n];
        for (j=0; j<i; j++)
            m	= m - temp[j] * matrix[i][j];
        temp[i]	= m/matrix[i][i];
        printf("\n x%d => %f", i+1, temp[i]);
    }
} // back_subsitution
 
void main() {
    printf("Enter number. of variables :: ");
    scanf("%d", &n);
 
    printf("Enter the augmented matrix: \n");
    for (i=0; i<n; i++)
        for (j=0; j<n+1; j++)
            scanf("%f", &matrix[i][j]);
 
    lower_traingularisation();
 
    printf("The lower traingular matrix is : \n");
 
    for (i=0; i<n; i++) {
        for (j=0; j<n+1; j++)
            printf("%f \t", matrix[i][j]);
        printf("\n");
    }
 
    printf("The required result is : \n");
 
    back_subsitution();
 
    getch();
} // main

Gauss Elimination method for solving n-linear equations in C language

This is a simple C language program that calculates solution of n-linear equations using Non-pivotal Gauss Elimination method. It uses upper triangular matrix to do so, for solution using lower triangular matrix visit here.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include<stdio.h>
#include<conio.h>
 
float matrix[10][10], m, temp[10];
int i, j, k, n;
 
void upper_triangularization() {
	for (i=0; i<n-1; i++)
		for (j=i+1; j<n; j++) {
			m	= matrix[j][i]/matrix[i][i];
			for (k=0; k<n+1; k++) {
				matrix[j][k]	= matrix[j][k]-(m*matrix[i][k]);
			}
		}
} //upper_traingulisation
 
void back_subsitution() {
	for (i=n-1; i>=0; i--) {
		m	= matrix[i][n];
		for (j=n-1; j>i; j--)
			m	= m - temp[n-j] * matrix[i][j];
		temp[n-i]	= m/matrix[i][i];
		printf("\n x%d => %f", i+1, temp[n-i]);
	}
} // back_subsitution
 
void main() {
	printf("Enter number. of variables :: ");
	scanf("%d", &n);
 
	printf("Enter the augmented matrix: \n");
	for (i=0; i<n; i++)
		for (j=0; j<n+1; j++)
			scanf("%f", &matrix[i][j]);
 
	upper_triangularization();
 
	printf("The upper traingular matrix is : \n");
 
	for (i=0; i<n; i++) {
		for (j=0; j<n+1; j++)
			printf("%f \t", matrix[i][j]);
		printf("\n");
	}
 
	printf("The required result is : \n");
 
	back_subsitution();
 
	getch();
} // main

Insertion And Deletion Operation Over Multiple Queue In C language

A simple C language program to implement multiple queues in a single dimension array.
This is a revised version of Insertion And Deletion Operation Over Multiple Queue | multiple queue in data structure.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include<stdio.h>
#include<conio.h>
# define max 20
 
int insq (int queue[max], int qno, int rear[], int limit[], int *data) {
	if (rear[qno] == limit[qno])
		return(-1);
	else {
		rear[qno]++; //... rear[qno] = rear[qno] + 1;
		queue[ rear[qno] ] = *data;
		return(1);
	} // else
} // insq
 
int delq (int queue[max], int qno, int front[], int rear[], int *data) {
	if( front[qno] == rear[qno] )
		return(-1);
	else {
		front[qno]++; //... front[qno] = front[qno] + 1;
		*data = queue[ front[qno] ];
		return(1);
	} // else
} // delq
 
int getQueueNumber(int n) {
	int qNo=0;
	Inva:
	printf("\n Enter a Logical Queue Number (1 to %d) : ", n);
	scanf("%d", &qNo);
	if (qNo<1 || qNo >n) {
		printf(" Invalid Queue Number. Please try again.\n");
		goto Inva;
	}
	return qNo;
}
 
void main() {
	int queue[max],  data;
	int bott[10], limit[10], f[10], r[10];
	int i, n, qno, size, option, reply;
 
	printf("\n C Language program to implement the Multiple Queues \n");
	printf("\n How Many Queues ? : ");
	scanf("%d", &n);
	size = max / n; //... Get Max. size for each Queue
 
	//... Initialize bottom for each Queue
 
	bott[0] = -1; //... Bottom of first Queue is -1
	for(i = 1; i < n; i++)
		bott[i] = bott[i-1] + size;
 
	//... Initialize Limit of each Queue
 
	for(i = 0; i < n; i++) //... Limit of i'th Queue is equal to bottom of i'th Queue + Size
		limit[i] = bott[i] + size;
 
	//... Initialize Front & Rear of each Queue
	//... Initial value of Front & Rear of each Queue is same as its Bottom Value
 
	for(i = 0; i < n; i++)
		f[i] = r[i] = bott[i];
 
	//... Process the Queues
 
	do {
		printf("\n\n C Language program to implement the Multiple Queues \n");
		printf("\n 1. Insert in a Queue");
		printf("\n 2. Delete from a Queue");
		printf("\n 3. Print from a Queue");
		printf("\n 3. Exit \n");
		printf("\n Select proper option ( 1 / 2 / 3 / 4) : ");
		scanf("%d", &option);
		switch(option) {
			case 1 : //... Insert
				qno	= getQueueNumber(n);
				printf("\n Enter Data : ");
				scanf("%d", &data);
				reply = insq(queue, qno-1, r, limit, &data);
				if( reply == -1)
					printf("\n Queue %d is Full \n", qno);
				else
					printf("\n %d is inserted in a Queue No. %d \n", data, qno);
				break;
			case 2 : //... Delete
				qno	= getQueueNumber(n);
				reply = delq(queue, qno-1, f, r, &data);
				if( reply == -1)
					printf("\n Queue %d is Empty \n", qno);
				else
					printf("\n %d is deleted from Queue No. %d \n", data, qno);
				break;
			case 3:
				qno	= getQueueNumber(n);
				printf("\n Elements of Queue %d are as : ", qno);
				if (f[qno-1]==r[qno-1]) {
					printf("\n Queue is empty");
					break;
				}
				for (i=f[qno-1]+1; i<=r[qno-1]; i++)
					printf("%d\t", queue[i]);
				printf("\n");
				break;
			case 4 :
				break;
			default:
				printf("\n Invalid input. Please try again.");
		} // switch
	}while(option!=4);
} // main

Hackthissite.org Solutions To All Basic Missions

Basic missions are really easy, with a little knowledge of HTML, javascript, UNIX and SSI all of the missions can be easily cracked. Here are the links to all these solutions.

Basic 1: The Idiot Test
Basic 2: Common sense
Basic 3: Deep into HTML
Basic 4: Changing the scripts
Basic 6: Decrpyt an encryption
Basic 7: Unix
Basic 8: SSI
Basic 9: Not difficult but tricky
Basic 10: Javascript, really?
Basic 11: Is there a solution even?

Note: There is no link to mission 5, as I was too tired to write one for that level. For help regarding mission 5, read the tutorial of mission 4, after all they are pretty similar.

Good luck!!!