First Upload

This commit is contained in:
2022-02-25 15:33:16 +02:00
commit 0c74d10f0d
295 changed files with 74784 additions and 0 deletions

181
8/IdanLibPointers.h Normal file
View File

@@ -0,0 +1,181 @@
#include "IdanLib.h"
#define N 3
unsigned short CountCharInColumn(char mat[][N], unsigned short row_size ,unsigned short column, char c)
{
unsigned short count = ZERO,
counter;
for (counter = ZERO; counter < row_size; counter++)
{
count += (mat[counter][column] == c);
}
return (count);
}
unsigned short CountCharInRow(char mat[][N], unsigned short col_size ,unsigned short row, char c)
{
unsigned short count = ZERO,
counter;
for (counter = ZERO; counter < col_size; counter++)
{
count += (mat[row][counter] == c);
}
return (count);
}
unsigned short CountCharInMainDiagonal(char mat[][N], unsigned short size, char c)
{
unsigned short count = ZERO,
counter;
for (counter = ZERO; counter < size; counter++)
{
count += (mat[size][size] == c);
}
return (count);
}
unsigned short CountCharInSecondaryDiagonal(char mat[][N], unsigned short size, char c)
{
unsigned short count = ZERO,
counter;
for (counter = ZERO; counter < size; counter++)
{
count += (mat[size][N - size] == c);
}
return (count);
}
void OutputPrintMatrix(char mat[][N], unsigned int row_size, unsigned int column_size)
{
unsigned int counter_row,
counter_col;
for (counter_row = ZERO; counter_row < row_size; counter_row++)
{
for (counter_col = ZERO; counter_col < column_size; counter_col++)
{
printf("%c, ", mat[counter_row][counter_col]);
}
printf("\n");
}
}
unsigned short MaxNumberInArray(unsigned short array[], int size)
{
int max = array[ZERO],
counter = ONE;
for (counter = ONE; counter < size; counter++)
{
max = (array[counter] > max) ? array[counter] : max;
}
return (max);
}
unsigned short MaxCountNumberInColumn(int mat[][N], unsigned short row_size ,unsigned short column)
{
unsigned short counter_array[TEN] = { ZERO },
counter,
max;
for (counter = ZERO; counter < row_size; counter++)
{
counter_array[mat[counter][column]]++;
}
max = MaxNumberInArray(counter_array, TEN);
return (max);
}
unsigned short MaxCountNumberInRow(int mat[][N], unsigned short col_size ,unsigned short row)
{
unsigned short counter_array[TEN] = { ZERO },
counter,
max;
for (counter = ZERO; counter < col_size; counter++)
{
counter_array[mat[row][counter]]++;
}
max = MaxNumberInArray(counter_array, TEN);
return (max);
}
BOOLEAN IsLatinSquare(int mat[][N], unsigned short row_size)
{
unsigned short counter = ZERO;
BOOLEAN is_latin_square = TRUE;
while ((row_size - counter) * is_latin_square)
{
is_latin_square *= (MaxCountNumberInColumn(mat, row_size, counter) == ONE) *
(MaxCountNumberInRow(mat, row_size, counter) == ONE);
counter++;
}
return (is_latin_square);
}
void InputMatrix(int mat[][N], unsigned short row_size)
{
unsigned short counter,
area = row_size * row_size;
for (counter = ZERO; counter < area; counter++)
{
scanf(" %d", &mat[counter / row_size][counter % row_size]);
}
}
int ColumnSum(int mat[][N], unsigned short row_size ,unsigned short column)
{
unsigned short counter;
int sum = ZERO;
for (counter = ZERO; counter < row_size; counter++)
{
sum += mat[counter][column];
}
return (sum);
}
int RowSum(int mat[][N], unsigned short col_size ,unsigned short row)
{
unsigned short counter;
int sum = ZERO;
for (counter = ZERO; counter < col_size; counter++)
{
sum += mat[row][counter];
}
return (sum);
}
int MainDiagonalSum(char mat[][N], unsigned short col_size)
{
unsigned short counter;
int sum = ZERO;
for (counter = ZERO; counter < col_size; counter++)
{
sum += mat[counter][counter];
}
return (sum);
}
int SecondaryDiagonalSum(int mat[][N], unsigned short col_size)
{
unsigned short counter;
int sum = ZERO;
for (counter = ZERO; counter < col_size; counter++)
{
sum += mat[counter][col_size - ONE - counter];
}
return (sum);
}