Exercise 2 for the course "Parallel and distributed systems" of THMMY in AUTH university.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

65 lines
1.8 KiB

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define NUMBER_OF_ROWS 10
#define NUMBER_OF_COLUMNS 10
int readArrayFromFile(int rows, int columns, double array[rows][columns]);
void printPointsArray(int rows, int columns, double array[rows][columns]);
void init(int pointsArrayRows, int pointsArrayColumns, double pointsArray[pointsArrayRows][pointsArrayColumns]);
int main(int argc, char const *argv[]){
double **pointsArray;
int row;
pointsArray = (double **)(malloc(NUMBER_OF_ROWS * sizeof(double *)));
for (int i = 0; i < NUMBER_OF_ROWS; ++i){
pointsArray[i] = (double *)(malloc(NUMBER_OF_COLUMNS * sizeof(double)));
}
init(NUMBER_OF_ROWS, NUMBER_OF_COLUMNS, &pointsArray);
printPointsArray(NUMBER_OF_ROWS, NUMBER_OF_COLUMNS, &pointsArray);
printf("Done! Press any key to exit.\n");
scanf("%d", &row);
}
int readArrayFromFile(int rows, int columns, double array[rows][columns]){
FILE *pointsBinaryFile;
pointsBinaryFile = fopen("data.bin","rb");
if(fread(array, sizeof(double), rows * columns, pointsBinaryFile) != rows * columns) {
if(feof(pointsBinaryFile))
printf("There were usefull info after the end of file.\n");
else
printf("File read error.\n");
return 1;
}
fclose(pointsBinaryFile);
return 0;
}
void printPointsArray(int rows, int columns, double array[rows][columns]){
int row, column;
for (row=0; row<rows; ++row){
for (column=0; column<columns; ++column){
printf("pointsArray[%d][%d] = %f\n", row, column, array[row][column]);
}
}
}
void init(int pointsArrayRows, int pointsArrayColumns, double pointsArray[pointsArrayRows][pointsArrayColumns]){
int row, column;
if (readArrayFromFile(pointsArrayRows, pointsArrayColumns, pointsArray)){
printf("Failed... Press any key to exit.\n");
scanf("%d", &row);
exit(1);
}
}