Первый вариант:
a = int(input('Введите a: '))
while True:
b = int(input('Введите b: '))
if a != b: break
print('Введите значение, неравное a')
while True:
c = int(input('Введите c: '))
if not c in [a,b]: break
print('Введите значение, отличное от предыдущих')
while True:
d = int(input('Введите d: '))
if not d in [a,b,c]: break
print('Введите значение, отличное от предыдущих')
print('--- Вы ввели: ---')
print('a = ', a)
print('b = ', b)
print('c = ', c)
print('d = ', d)
print('--- Вычисления ---')
print('1:')
if a%b + a%c + a%d == 0: print('a делится на b, c и d!')
elif a%b == 0: print('a делится на b!')
elif a%c == 0: print('a делится на c!')
elif a%d == 0: print('a делится на d!')
else: print('a не делится ни на b, ни на c, ни на d!')
print('2:')
if c-d == 0: print('Невозможно вычислить (a-b)/(c-d), т.к. c-d = 0')
else: print('(a-b)/(c-d) = ', (a-b)/(c-d))
if c+b+d == 0: print('Невозможно вычислить a/(c+b+d), c+b+d = 0')
else: print('a/(c+b+d) = ', a/(c+b+d))
print('3:')
max = a
min = a
if max < b: max = b
if min > b: min = b
if max < c: max = c
if min > c: min = c
if max < d: max = d
if min > d: min = d
print('Минимальное число из введённых: ', min)
print('Максимальное число из введённых: ', max)
Второй вариант (сложнее читается, но сам по себе компактнее):
values = []
variables = ['a','b','c','d']
check = [0,0,0]
for i in range(4):
while True:
x = int(input(f'Введите {i+1}-е число: '))
if x not in values:
values.append(x)
break
print('Введите значение, отличное от предыдущих')
print(f'--- Вы ввели:')
for i in enumerate(values):
print(f'{variables[i[0]]} = {i[1]}')
print('--- Вычисления ---')
print('1:')
for i in enumerate(values[1:]):
if values[0] % i[1] == 0: check[i[0]] = 1
if sum(check) == 3: print('a делится на остальные!')
elif sum(check) == 0: print('a не делится на остальные!')
else:
for i in enumerate(check):
if i[1] == 1: print(f'a делится на {variables[i[0]+1]}!')
print('2:')
if values[2] == values[3]: print('Невозможно вычислить (a-b)/(c-d), т.к. c-d = 0')
else: print('(a-b)/(c-d) = ', (values[0]-values[1])/(values[2]-values[3]))
if sum(values[1:]) == 0: print('Невозможно вычислить a/(c+b+d), c+b+d = 0')
else: print('a/(c+b+d) = ', values[0]/sum(values[1:]))
print('3:')
print(f'Минимальное число из введённых: {min(values)}')
print(f'Максимальное число из введённых: {max(values)}')
Поделитесь своими знаниями, ответьте на вопрос:
Постройте блок схему для задачи: "Подсчитать количество и сумму четных двухзначных чисел*
#include <iostream>
using namespace std;
int main()
{
string str;
cout << "Old string:\n";
getline(cin,str);//если cin >> str, то считывание лишь до первого пробела
for (int i=0; i < str.length(); i++) //таким образом перемещаемся по элементах строки
{
if (str[i] == '.')// если в тексте найдено точку...
{
if (str[i + 1] == '.' && str[i + 2] == '.') // ...если дальше есть две точки подряд...
i+=2;//...то идти дальше: i+=2 здесь и i++ в условии цикла - итого перепрыгнуть через те две точки (i+=3)
else //если дальше нет двух точек подряд...
{
for (int j = 0; j < 2; j++)// ...то по одной...
{
str.insert(i, ".");// ..."создать" их, используя функцмю str.insert(pos,key), где первый аргумент - позиция вышенайденной точки, перед которой "создаём" точку (вставляем 2-й аргумент)
i++;//мы сейчас на новосозданной точке, поэтому идти дальше: переместиться на один символ вперёд - итого мы сейчас на той точке, которую мы не создавали и которая была в Old string
}
}}}
cout << "New string =\n" << str;
return 0;
}