Archived
Работы по программированию
This commit is contained in:
Executable
+53
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user