Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zadachi_avtomatizirovannogo_zacheta.docx
Скачиваний:
1
Добавлен:
20.07.2019
Размер:
52.51 Кб
Скачать

Int main(void){

FILE* in;

FILE* out;

int result;

out=fopen(“output.txt”, “w”); if (out==NULL) return 1;

in=fopen(“input.txt”, “r”); if (in==NULL) {fclose(out); return 1;}

f120(in, &result);

fprintf(out, “%d”, result);

fclose(in); fclose(out);

return 0;

}

void f120(FILE* filein, int* otvet){

int q, a1, a2, d, M;

q=fscanf(filein, “%d”, &a1;);

if(q==EOF) {*otvet=0; return;}

assert (q==1);

d=1; M=0;

while ((q=fscanf(filein, “%d”, &a2))==1){ if(a1==a2) d++; else { if(d>=2&&d>M) {M=d; d=1;} } a1=a2; } assert(q==EOF); *otvet=M; return; }

Задача №21.

Определить длину (количество элементов) в постоянном участке последовательности целых чисел, имеющем наибольшую сумму своих элементов.

Ответ: одно число – искомое количество элементов. Если в последовательности нет постоянных участков, то в файл ответа вывести слово false. Если же в последовательности несколько участков с максимальной суммой, то нужно вывести длину первого из них.

#include <stdio.h>

#include <assert.h>

void f121(FILE*, int*);

Int main(void){

FILE* in;

FILE* out;

int result;

out=fopen(“output.txt”, “w”); if (out==NULL) return 1;

in=fopen(“input.txt”, “r”); if (in==NULL) {fclose(out); return 1;}

f121(in, &result);

fprintf(out, “%d”, result);

fclose(in); fclose(out);

return 0;

}

void f121(FILE* filein, int* otvet){

int q, s=0, sold=-1000000, l=0, lfin=0, b=0, a, aold, h;

q=fscanf(filein, “%d”, &aold);

if(q==EOF) {*otvet=10000000; return;}

while ((q=fscanf(filein, “%d”, &a))==1){

if(a=aold) { if (h=0) {s=a+aold; l=2; b=1;}

else {s+=a; l++;}

} else {

if(h=1) {

if (s>sold) {

lfin=l;

sold=s;

} h=0; }

}

aold=a;

}

if (b=0) {*y=1000000;}

else {*y=lfin;}

return;

}

Задача №22.

Определить наибольшую длину (количество элементов) возрастающих участков последовательности вещественных чисел.

Ответ: одно число – искомое количество элементов. Если в последовательности нет возрастающих участков (в том числе, для пустой и одноэлементной последовательностей), то в качестве ответа надо вывести в файл слово false.

Задача №23.

Определить наибольшую сумму элементов по возрастающим участкам последовательности вещественных чисел (т.е. максимум из сумм элементов по каждому возрастающему участку).

Ответ: одно число – искомая максимальная сумма. Если в последовательности нет возрастающих участков, то в ответ записать слово false.

Задача №24.

Вычислить среднее арифметическое экстремумов последовательности целых чисел. Элемент последовательности называется экстремумом (максимумом или минимумом), если элементы, стоящие рядом с ним, строго меньше (строго больше). В частности, первый и последний элементы также могут быть экстремумами, в этом случае сравнение рассматривается только для одного соответствующего соседнего элемента.

Ответ: одно число – искомое среднее арифметическое. Если в последовательности нет экстремумов (в том числе и для пустой последовательности), то в ответ надо записать слово false.

#include <stdio.h>

#include <assert.h>

void f124(FILE*, int*);

#define False 0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]