Archived
53 lines
1.4 KiB
C
Executable File
53 lines
1.4 KiB
C
Executable File
/*
|
|
29.Загадать случайным образом 100 чисел в диапазоне [-50;75].
|
|
Записать их в файл «binint.dat» - каждое число записывается в файл в 4-х байтном представлении.
|
|
Прочитать данные из файла «binint.dat», найти сумму чисел в нём.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <time.h>
|
|
#include <math.h>
|
|
|
|
const int MIN = -50;
|
|
const int MAX = 75;
|
|
const int AMOUNT = 100;
|
|
|
|
int* getRandomArray() {
|
|
srand(time(0));
|
|
|
|
int *array = malloc(sizeof(int)*AMOUNT);
|
|
for (int i = 0; i < AMOUNT;i++) {
|
|
array[i] = rand() % (abs(MIN) + abs(MAX) + 1) - abs(MIN);
|
|
}
|
|
|
|
return array;
|
|
}
|
|
|
|
void writeData(char* filename) {
|
|
FILE *file = fopen(filename, "wb");
|
|
|
|
int *array = getRandomArray();
|
|
for (int i = 0; i < AMOUNT; i++) {
|
|
fwrite(&array[i], sizeof(int), 1, file);
|
|
}
|
|
fclose(file);
|
|
}
|
|
|
|
int getSummaryNumbers(char* filename) {
|
|
FILE *file = fopen(filename, "rb");
|
|
int number, summary = 0;
|
|
|
|
while(fread(&number, sizeof(int), 1, file) == 1) {
|
|
summary += number;
|
|
}
|
|
fclose(file);
|
|
return summary;
|
|
}
|
|
|
|
int main() {
|
|
char *filename = "binint.dat";
|
|
writeData(filename);
|
|
printf("Summary: %d", getSummaryNumbers(filename));
|
|
return 0;
|
|
} |