Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <locale.h>
- #include <limits.h>
- #include <string.h>
- #define MAX_SIZE 0x7fff
- size_t create(const char *);
- int * vector(const size_t);
- void show(int *, const size_t);
- void max_elements(const char *, int *);
- int main() {
- char filename[] = "numbers.txt";
- size_t size;
- int * v = NULL;
- if (size = create(filename)) {
- setlocale(LC_CTYPE, "Russian_Russia.1251");
- if (v = vector(size)) {
- max_elements(filename, v);
- show(v, size);
- free(v);
- }
- }
- getchar();
- return 0;
- }
- void max_elements(const char * _fn, int * _v) {
- FILE * stream;
- int max, e;
- unsigned n = 0;
- char buff[MAX_SIZE];
- char * token = NULL;
- if (fopen_s(&stream, _fn, "r")) printf("\a Невозможно открыть файл!\n");
- else
- while (!feof(stream)) {
- max = INT_MIN;
- fgets(buff, MAX_SIZE, stream);
- token = strtok(buff, " ");
- while (token) {
- e = atoi(token);
- if (max < e) max = e;
- token = strtok(NULL, " ");
- }
- _v[n++] = max;
- }
- if (stream) if (fclose(stream)) printf("\a Невозможно закрыть файл!\n");
- }
- void show(int * _v, const size_t _sz) {
- unsigned n = 0;
- do printf("%3i", _v[n]); while (++n < _sz);
- printf("\n");
- }
- int * vector(const size_t _sz) { return (int *)calloc(_sz, sizeof(int)); }
- size_t create(const char * _fn) {
- FILE * stream;
- size_t rows = 0, cols;
- unsigned r, c;
- int e;
- if (fopen_s(&stream, _fn, "w")) printf("\a Невозможно создать файл!\n");
- else {
- srand((unsigned)time(NULL));
- rows = 10 + rand() % 11;
- for (r = 0; r < rows; r++) {
- cols = 16 + rand() % 17;
- for (c = 0; c < cols; c++) {
- e = 1 + rand() % 99;
- fprintf(stream, "%d", e);
- if (c < cols - 1) fprintf(stream, " ");
- }
- if (r < rows - 1) fprintf(stream, "%c", '\n');
- }
- if (stream) if (fclose(stream)) printf("\a Невозможно закрыть файл!\n");
- }
- return rows;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement