Сделал задание номер 3 (35)

This commit is contained in:
AZEN-SGG 2024-09-20 11:36:44 +03:00
parent 05ce9de374
commit f6f440fef3
12 changed files with 138 additions and 0 deletions

9
Second/input.txt Normal file
View file

@ -0,0 +1,9 @@
123
1234
12345
123456
234567
345678
456789
12
1

8
Second/makefile Normal file
View file

@ -0,0 +1,8 @@
all: main.o count_func.o
gcc main.o count_func.o && del *.o
main.o: main.c
gcc -c main.c
count_func.o: count_func.c
gcc -c count_func.c

37
Third/count_max_local.c Normal file
View file

@ -0,0 +1,37 @@
#include "count_max_local.h"
int max(int first, int second) {
if (first > second) {
return first;
}
return second;
}
int getCountMaxLocal(FILE *file) {
int current_n, last, length, maxLen;
if (fscanf(file, "%d", &current_n) != 1) {
printf("File is empty!\n");
return -1;
}
last = current_n;
maxLen = EMPTY;
length = 1;
while (fscanf(file, "%d", &current_n) == 1) {
if (last == current_n) {
length += 1;
} else {
if (last > current_n) {
maxLen = max(maxLen, length);
length = EMPTY;
} else {
length = 1;
}
}
last = current_n;
}
return max(maxLen, length);
}

11
Third/count_max_local.h Normal file
View file

@ -0,0 +1,11 @@
#ifndef COUNT_MAX_LOCAL
#define COUNT_MAX_LOCAL
#include <stdio.h>
#define EMPTY 0
int max(int first, int second);
int getCountMaxLocal(FILE * file);
#endif

23
Third/get_file.c Normal file
View file

@ -0,0 +1,23 @@
#include "get_file.h"
FILE * getFile(void)
{
FILE * file;
char filename[50];
printf("Enter filename: ");
if (scanf("%s", filename) == 1)
{
file = fopen(filename, "r");
if (file == NULL) {
printf("Error file!\n");
return NULL;
} else {
return file;
}
} else
{
printf("Empty name!\n");
return NULL;
}
}

8
Third/get_file.h Normal file
View file

@ -0,0 +1,8 @@
#ifndef GET_FILE
#define GET_FILE
#include <stdio.h>
FILE * getFile(void);
#endif

18
Third/input.txt Normal file
View file

@ -0,0 +1,18 @@
1
2
2
2
2
2
1
2
2
2
1
2
2
2
2
2
2
2

13
Third/main.c Normal file
View file

@ -0,0 +1,13 @@
#include <stdio.h>
#include "get_file.h"
#include "count_max_local.h"
int main(void)
{
FILE * file = getFile();
if (file == NULL) {
return -1;
}
printf("Max length of local maximum is %d", getCountMaxLocal(file));
return 0;
}

11
Third/makefile Normal file
View file

@ -0,0 +1,11 @@
all: main.o count_max_local.o get_file.o
gcc main.o count_max_local.o get_file.o && del *.o
main.o: main.c
gcc -c main.c
count_max_local.o: count_max_local.c
gcc -c count_max_local.c
get_file.o: get_file.c
gcc -c get_file.c