На вход программы подается файл, нужно посчитать контрольную сумму файла. Я написал код, но не знаю так ли оно работает
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
int hash(int, char);
void first_task(void);
int main()
{
first_task();
return 0;
}
void first_task()
{
FILE *fp;
if((fp = fopen("test.txt", "rb+")) == NULL)
{
fprintf(stderr,"Cannot open test.txt");
return -1;
}
int hash1 = 3;
char c;
fread(&c, 1, 1, fp);
while((c = fgetc(fp)) != EOF)
{
putchar(c);
hash1 = hash(hash1, c);
}
printf("File checksum: %d", hash1);
}
int hash(int hash0, char byte)
{
return 41*hash0*byte;
}