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