Skip to content

Commit 5ee2d38

Browse files
committed
Programms on Arrays
1 parent 72a3ea7 commit 5ee2d38

20 files changed

+833
-0
lines changed

4_ARRAY/2DpointerArray.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include <stdio.h>
2+
#include <math.h>
3+
void main()
4+
{
5+
int s[4][2] = {{1234, 56},
6+
{1212, 33},
7+
{1434, 80},
8+
{1312, 78}};
9+
int(*p)[2];
10+
int i, j, *pint;
11+
for (i = 0; i < 4; i++)
12+
{
13+
p = &s[i];
14+
pint = (int *)p;
15+
printf("\n");
16+
for (j = 0; j < 2; j++)
17+
printf("%d ", *(pint + j));
18+
}
19+
pow(2, 2);
20+
}

4_ARRAY/Array.c

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
#include <stdio.h>
2+
#include <stdlib.h>
3+
4+
int del(int *, int);
5+
int insert(int *, int);
6+
int main()
7+
{
8+
int a[50], i, n, ch;
9+
10+
printf("Enter the no of Elements(n):\n");
11+
scanf("%d", &n);
12+
printf("Enter the Elements:\n ");
13+
for (i = 0; i < n; i++)
14+
scanf("%d", &a[i]);
15+
printf("Array is:\n");
16+
for (i = 0; i < n; i++)
17+
printf("%d ", a[i]);
18+
19+
printf("\nMenu\n1.Insert an element\n2.Delete an Element\n3.exit");
20+
while (1)
21+
{
22+
printf("\nEnter your choice:\n");
23+
scanf("%d", &ch);
24+
switch (ch)
25+
{
26+
case 1:
27+
n = insert(a, n);
28+
printf("After Insertion:\nArray:\n");
29+
for (i = 0; i < n; i++)
30+
printf("%d ", a[i]);
31+
break;
32+
case 2:
33+
n = del(a, n);
34+
printf("After Deletion:\nArray:\n");
35+
for (i = 0; i < n; i++)
36+
printf("%d ", a[i]);
37+
break;
38+
case 3:
39+
exit(0);
40+
default:
41+
printf("Incorrect Choice....!!");
42+
}
43+
}
44+
}
45+
int insert(int *p, int n)
46+
{
47+
int i, k;
48+
int item;
49+
if (n == 50)
50+
{
51+
printf("\nError:Overflow..!!");
52+
exit(0);
53+
}
54+
printf("Enter the index no of the Element:\n");
55+
scanf("%d", &k);
56+
if (k < 0 || k > n)
57+
{
58+
printf("\nError:Index is not valid...!!");
59+
exit(0);
60+
}
61+
printf("Enter the value you want to insert:");
62+
scanf("%d", &item);
63+
for (i = n; i >= k; i--)
64+
{
65+
*(p + i + 1) = *(p + i);
66+
}
67+
*(p + k) = item;
68+
return n = n + 1;
69+
}
70+
int del(int *p, int n)
71+
{
72+
int i, k;
73+
int item;
74+
if (n == 0)
75+
{
76+
printf("\nError:Underflow..!!");
77+
exit(0);
78+
}
79+
printf("Enter the index no of the Element:\n");
80+
scanf("%d", &k);
81+
if (k < 0 || k > n)
82+
{
83+
printf("\nError:Index is not valid...!!");
84+
exit(0);
85+
}
86+
for (i = k; i < n; i++)
87+
{
88+
*(p + i) = *(p + i + 1);
89+
}
90+
return n = n - 1;
91+
}

4_ARRAY/Magic_matrix.c

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#include <stdio.h>
2+
#define MAX 20
3+
4+
int main(void)
5+
{
6+
int a[MAX][MAX];
7+
int i, j, n, num;
8+
9+
printf("Enter n (odd value) : ");
10+
scanf("%d", &n);
11+
if (n % 2 == 0)
12+
{
13+
printf("Please, Enter odd value of n: ");
14+
return;
15+
}
16+
i = n - 1; //bottom row
17+
j = (n - 1) / 2; //center column
18+
19+
for (num = 1; num <= n * n; num++)
20+
{
21+
a[i][j] = num;
22+
i++; //move down
23+
j--; //move left
24+
if (num % n == 0)
25+
{
26+
i -= 2; //one above the previous row
27+
j++; //back to previous column
28+
}
29+
else if (i == n)
30+
i = 0; //goto top most row
31+
else if (j == -1)
32+
j = n - 1; //goto rightmost column
33+
}
34+
for (i = 0; i < n; i++)
35+
{
36+
for (j = 0; j < n; j++)
37+
printf("%4d", a[i][j]);
38+
printf("\n");
39+
}
40+
return 0;
41+
}

4_ARRAY/Matrix_Addition.c

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#include <stdio.h>
2+
3+
void add(int[][20], int[][20], int, int);
4+
void main()
5+
{
6+
int i, j, k, r, c;
7+
int A[20][20], B[20][20];
8+
printf("Enter the no of rows and columns for Matrices:");
9+
scanf("%d%d", &r, &c);
10+
printf("Enter the elements Matrix1:\n");
11+
for (i = 0; i < r; i++)
12+
for (j = 0; j < c; j++)
13+
scanf("%d", &A[i][j]);
14+
printf("Matrix 1 is:\n\n");
15+
for (i = 0; i < r; i++)
16+
{
17+
for (j = 0; j < c; j++)
18+
printf("\t%d", A[i][j]);
19+
printf("\n");
20+
}
21+
printf("Enter the elements Matrix2:\n");
22+
for (i = 0; i < r; i++)
23+
for (j = 0; j < c; j++)
24+
scanf("%d", &B[i][j]);
25+
printf("Matrix 2 is:\n\n");
26+
for (i = 0; i < r; i++)
27+
{
28+
for (j = 0; j < c; j++)
29+
printf("\t%d", B[i][j]);
30+
printf("\n");
31+
}
32+
add(A, B, r, c);
33+
}
34+
void add(int a[][20], int b[][20], int r, int c)
35+
{
36+
int i, j;
37+
int sum[20][20];
38+
for (i = 0; i < r; i++)
39+
for (j = 0; j < c; j++)
40+
sum[i][j] = a[i][j] + b[i][j];
41+
42+
printf("\n\nResultant Matrix:\n\n");
43+
for (i = 0; i < r; i++)
44+
{
45+
for (j = 0; j < c; j++)
46+
printf("\t%d", sum[i][j]);
47+
printf("\n");
48+
}
49+
}

4_ARRAY/N_queens.c

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
N queen problem
3+
Placing N chess queens to NxN chess board so that no two queens attack each other
4+
Queen can move squares along diagonally, horizontally and vertically
5+
*/
6+
//print 1 if queen is placed at position ,0 else
7+
8+
#include <stdio.h>
9+
#include <stdlib.h>
10+
11+
void main()
12+
{
13+
int N, **q, i, j, k = 0;
14+
15+
printf("Enter N = ");
16+
scanf("%d", &N);
17+
if (N < 4)
18+
{
19+
printf("No Solution...\nTry again...");
20+
exit(0);
21+
}
22+
q = calloc(N, sizeof(int *));
23+
for (i = 0; i < N; i++)
24+
q[i] = (int *)calloc(N, sizeof(int));
25+
26+
//placing queens
27+
for (i = 0; i < N; i++)
28+
{
29+
for (j = 0; j < N; j++)
30+
{
31+
k = (2 * i) + 1;
32+
if (k > N)
33+
{
34+
k = k - N - 1;
35+
}
36+
q[i][k] = 1;
37+
}
38+
}
39+
printf("\n");
40+
for (i = 0; i < N; i++)
41+
{
42+
for (j = 0; j < N; j++)
43+
printf(" %d", q[i][j]);
44+
printf("\n");
45+
}
46+
}

4_ARRAY/Partition_array.c

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#include <stdio.h>
2+
3+
void partition(int arr[], int n)
4+
{
5+
int i, j = 0;
6+
int temp[50];
7+
8+
for (i = 0; i < n; i++)
9+
{
10+
if (arr[i] < 0)
11+
temp[j++] = arr[i];
12+
}
13+
for (i = 0; i < n; i++)
14+
{
15+
if (arr[i] >= 0)
16+
temp[j++] = arr[i];
17+
}
18+
for (i = 0; i < n; i++)
19+
{
20+
arr[i] = temp[i];
21+
}
22+
}
23+
24+
int main(void)
25+
{
26+
int array[50];
27+
int n, i;
28+
29+
printf("Enter the size of the array : ");
30+
scanf("%d", &n);
31+
printf("Enter the elements of the array: ");
32+
for (i = 0; i < n; i++)
33+
scanf("%d", &array[i]);
34+
35+
printf("You have entered the following array : \n");
36+
for (i = 0; i < n; i++)
37+
printf("%4d", array[i]);
38+
printf("\n");
39+
40+
partition(array, n);
41+
printf("\nAfter Partition : \n");
42+
for (i = 0; i < n; i++)
43+
printf("%4d", array[i]);
44+
printf("\n");
45+
46+
return 0;
47+
}

4_ARRAY/PascalsTriangle_arr.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#include <stdio.h>
2+
#define MAX 100
3+
4+
int main(void)
5+
{
6+
int a[MAX][MAX];
7+
int i, j, n;
8+
9+
printf("Enter n : ");
10+
scanf("%d", &n);
11+
for (i = 0; i <= n; i++)
12+
{
13+
for (j = 0; j <= i; j++)
14+
if (j == 0 || i == j)
15+
a[i][j] = 1;
16+
else
17+
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
18+
}
19+
for (i = 0; i < n; i++)
20+
{
21+
for (j = 0; j <= i; j++)
22+
printf("%5d", a[i][j]);
23+
printf("\n");
24+
}
25+
return 0;
26+
}

4_ARRAY/Prime_Sieve.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
//print all prime numbers less than integer n, using Sieve of Eratosthenes
2+
3+
#include <stdio.h>
4+
#define MAX 10000
5+
6+
int main(void)
7+
{
8+
int p, i, n, a[MAX] = {0};
9+
10+
printf("Enter n : ");
11+
scanf("%d", &n);
12+
p = 2;
13+
while (p * p <= n)
14+
{
15+
//cross out all multiples of p
16+
for (i = 2; i * p <= n; i++)
17+
a[i * p] = 1;
18+
//find next uncrossed
19+
for (i = p + 1; i <= n; i++)
20+
if (a[i] == 0)
21+
{
22+
p = i;
23+
break;
24+
}
25+
}
26+
//print all uncrossed integers
27+
for (i = 2; i <= n; i++)
28+
if (a[i] == 0)
29+
printf("%d ", i);
30+
return 0;
31+
}

4_ARRAY/Print_spirally.c

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//print a square matrix spirally
2+
#include <stdio.h>
3+
#define MAX 20
4+
5+
int main(void)
6+
{
7+
int a[MAX][MAX], i, j, n, start, end;
8+
9+
printf("Enter the value of n : ");
10+
scanf("%d", &n);
11+
12+
for (i = 0; i < n; i++)
13+
{
14+
for (j = 0; j < n; j++)
15+
scanf("%d", &a[i][j]);
16+
printf("\n");
17+
}
18+
for (i = 0; i < n; i++)
19+
{
20+
for (j = 0; j < n; j++)
21+
printf("%4d", a[i][j]);
22+
printf("\n");
23+
}
24+
printf("\n\n");
25+
26+
for (start = 0, end = n - 1; start <= end; start++, end--)
27+
{
28+
for (i = start; i <= end; i++)
29+
printf("%d ", a[start][i]);
30+
for (i = start + 1; i <= end; i++)
31+
printf("%d ", a[i][end]);
32+
for (i = end - 1; i >= start; i--)
33+
printf("%d ", a[end][i]);
34+
for (i = end - 1; i >= start + 1; i--)
35+
printf("%d ", a[i][start]);
36+
}
37+
return 0;
38+
}

0 commit comments

Comments
 (0)