## 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.

```#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.

```#include
#include
# 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);
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);
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.

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!!!