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

Задача №5

Статистика

Вася не любит английский язык, но каждый раз старается получить хотя бы четверку за четверть, чтобы оставаться ударником. В текущей четверти Вася заметил следующую закономерность: по нечетным дням месяца он получал тройки, а по четным – четверки. Так же он помнит, в какие дни он получал эти оценки. Поэтому он выписал на бумажке все эти дни для того, чтобы оценить, сколько у него троек и сколько четверок. Помогите Васе это сделать, расположив четные и нечетные числа в разных строчках. Вася может рассчитывать на оценку 4, если четверок не меньше, чем троек.

Входные данные

В первой строке входного файла INPUT.TXT записано единственное число N – количество элементов целочисленного массива (1<=N<=100). Вторая строка содержит N чисел, представляющих заданный массив. Каждый элемент массива – натуральное число от 1 до 31. Все элементы массива разделены пробелом.

Выходные данные

В первую строку выходного файла OUTPUT.TXT нужно вывести числа, которые соответствуют дням месяцев, в которые Вася получил тройки, а во второй строке соответственно расположить числа месяца, в которые Вася получил четверки. В третьей строке нужно вывести «YES», если Вася может рассчитывать на четверку и «NO» в противном случае. В каждой строчке числа следует выводить в том же порядке, в котором они идут во входных данных. При выводе, числа отделяются пробелом.

var i,j,w,n:integer;

a,b:array [1..100] of integer;

begin

assign(input,'input.txt');reset(input);

assign(output,'output.txt');rewrite(output); //открываем файлы

read(n);

j:=0;

for i:=1 to n do

begin

read(w);

if w mod 2 = 1 then

write(w,' ') //если число нечетное, выводим его

else

begin

j:=j+1;

a[j]:=w; //иначе – сохраняем в массив...

end

end;

writeln;

for i:=1 to j do

write(a[i],' '); //который потом выводим

writeln;

if j>=n-j then write('YES') else write('NO'); //считаем, каких оценок больше

end.

Задача №6

Шахматы

Совсем недавно Вася занялся программированием и решил реализовать собственную программу для игры в шахматы. Но у него возникла проблема определения правильности хода конем, который делает пользователь. Т.е. если пользователь вводит значение «C7-D5», то программа должна определить это как правильный ход, если же введено «E2-E4», то ход неверный. Так же нужно проверить корректность записи ввода: если например, введено «D9-N5», то программа должна определить данную запись как ошибочную. Помогите ему осуществить эту проверку!

Входные данные

В единственной строке входного файла INPUT.TXT записан текст хода, который указал пользователь. Пользователь не может ввести строку, длиннее 5 символов.

Выходные данные

В выходной файл OUTPUT.TXT нужно вывести «YES», если указанный ход конем верный, если же запись корректна (в смысле правильности записи координат), но ход невозможен, то нужно вывести «NO». Если же координаты не определены или заданы некорректно, то вывести сообщение «ERROR».

#include <stdio.h>

#include <math.h>

int main(){

FILE *f;

unsigned short int res=1;

f=fopen("INPUT.TXT","r");

char x1,y1,x2,y2,tmp;

fscanf(f,"%c%c%c%c%c",&x1,&y1,&tmp,&x2,&y2); //открываем файл

fclose(f); //считываем данные

x1=x1-64;

x2=x2-64;

y1=y1-48;

y2=y2-48; //переводим символы в числа согласно ASCII

if ((x1<0)||(x1>8)||

(x2<0)||(x2>8)||

(y1<0)||(y1>8)||

(y2<0)||(y2>8)||(tmp!='-')) res=3; //проверяем корректность записи

else

{

switch (abs(x2-x1))

{

case 1:

if (abs(y1-y2)!=2) res=2;

break;

case 2:

if (abs(y1-y2)!=1) res=2;

break;

default:

res=2;

break;

}; //проверяем правильность хода

};

f=fopen("OUTPUT.TXT","wt"); //открываем файл

switch (res)

{

case 1: fprintf(f,"YES");

break;

case 2: fprintf(f,"NO");

break;

case 3: fprintf(f,"ERROR");

break;

}; //выводим результат

fclose(f);}

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