Решить задачу на питоне Шли как-то два математика по лесу и собирали ягоды. Час шли, два шли, а потом вдруг остановились и решили ягодами помериться. Достали они весы (какой же математик пойдет в лес без весов?) и взвесили свои корзины с собранным урожаем, а потом записали полученные числа a 1 и b 1 на листочек. После этого второй математик пересыпал все ягоды в корзину к первому (полностью опустошив свою корзину), и они снова взвесили свои корзины, получив числа a 2 и b 2 соответственно. Наконец, первый математик пересыпал все ягоды в корзину ко второму (полностью опустошив свою корзину); после взвешивания они получили числа a 3 и b 3 соответственно. Этих данных оказалось достаточно для определения победителя, и довольные математики пошли дальше. Вам же предстоит вычислить массу ягод в корзине каждого из математиков до совершения всех пересыпаний. Формат ввода Входные данные состоят из трёх строк. В i -й строке ( 1 ≤ i ≤ 3 ) записаны целые числа a i и b i ( 0 ≤ a i , b i ≤ 10000 ) . Формат вывода В единственной строке выведите пару целых чисел через пробел - сколько ягод собрали, соответственно, первый и второй математик.
#include <stdio.h>
#include <iostream>
#include <locale.h>
#include <ctime>
int main() {
setlocale(LC_ALL, "rus");
system("chcp 1251");
const int SIZE = 256;
int i, j, ch;
char str[SIZE];
std::cout << "Your string, please" << std::endl;
for (i = 0; i < SIZE - 1 && (ch = getchar()) != -1 && ch != '\n'; i++) {
str[i] = ch;
}
std::cout << "Изначальная строка:\n" << str << "\n\n" << std::endl;
for (i = 0; i < SIZE - 1; i++) {
if (str[i] == '.') {
if (str[i + 1] == '.' && str[i + 2] == '.') {
i += 2;
continue;
}
else {
for (j = SIZE - 3; j > i; j--) {
str[j + 2] = str[j];
}
str[i + 1] = '.';
str[i + 2] = '.';
i += 2;
}
}
}
std::cout << "Измененная строка:\n" << str << "\n\n" << std::endl;
return 0;
}
Программа на Python приведена ниже
Объяснение:
https://imgur.com/a/zEYf69b (или скриншот, если не откроется ссылка)
Ваша программа:
1) Вы считываете все в одну строку, что не соответствует главному условию задачи: в файле даны строки, а не одна строка. На скриншоте приведено верное написание: пишем цикл for s in file.readlines(), так мы обозначим, что строк больше одной.
2) Для подсчета количества букв логично использовать встроенный метод str.count(''), однако если вы решили обойти это и использовать специальные переменные для подсчета (такой вариант решения возможен, хотя и менее эффективен с точки зрения написания кода), верное решение таким путем приведено на скриншоте №2
2.1) В программе №2 необходимо не забывать обнулять переменные
после каждого цикла, как это указано на скриншоте №2