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

120
8/ex3.c Normal file
View File

@@ -0,0 +1,120 @@
#include "IdanLib.h"
#include <stdio.h>
#define N 3
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);
}
int InputInt()
{
int num;
scanf(" %d", &num);
return (num);
}
BOOLEAN IsMagicSqaure(int mat[][N], unsigned short row_size)
{
int sum = MainDiagonalSum(mat, row_size);
BOOLEAN is_magic_sqaure = (sum == SecondaryDiagonalSum(mat, row_size));
unsigned short counter = ZERO;
while ((row_size - counter) * is_magic_sqaure)
{
is_magic_sqaure *= (ColumnSum(mat, row_size, counter) == sum) *
(RowSum(mat, row_size, counter) == sum);
counter++;
}
return (is_magic_sqaure);
}
void InputMatrix(int mat[][N], unsigned short row_size)
{
unsigned short counter,
area = row_size * row_size;
for (counter = ZERO; counter < area; counter++)
{
mat[counter / row_size][counter % row_size] = InputInt();
}
}
void OutputPrintRequestForMatrix()
{
printf("Enter 9 numbers for matrix: ");
}
void OutputPrintMagicSquare(BOOLEAN is_magic_square)
{
printf("This is magic square: %hu\n", is_magic_square);
}
void OutputPrintMatrix(int 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("%d, ", mat[counter_row][counter_col]);
}
printf("\n");
}
}
void main(void)
{
int mat[N][N] = { ZERO };
OutputPrintRequestForMatrix();
InputMatrix(mat, N);
OutputPrintMatrix(mat, N, N);
OutputPrintMagicSquare(IsMagicSqaure(mat, N));
}