Я исправил ошибки, теперь она работает корректно, но если тебе нужно обязательно использовать if..else, то оставять коммент, я перепишу
#include <iostream>
using namespace std;
int main()
{
setlocale(0, "Rus");
int osenka; ;
cout << "Введите произвольную цифру от 2 до 5: ",
cin >> osenka;
if (osenka == 5) // Если введенная цифра равна 5.
cout << "Вы получили оценку «5» \n";
if (osenka == 4) //Если введенная цифра равна 4
cout << "Вы получили оценку «4». \n";
if (osenka == 3) //Если введенная цифра равна 3
cout << "Вы получили оценку «3». \n";
if (osenka == 2)
cout << "Вы получили оценку «2».\n";
return 0;
}
#Ruby 2
def getNumberByPosition(start_num, end_num, k, n = 3)
# p [start_num, end_num, k, n]
if not start_num.between?(10**(n - 1),10**n - 1) or not end_num.between?(10**(n - 1),10**n - 1) then return end
s = ""
for i in start_num..end_num
s += i.to_s()
end
number = start_num + (k-1) / n
if number > end_num
puts "Выход за пределы"
return
# p number
upper_limit = n + 1 - ((k % n == 0) ? n : k % n)
number = number % (10**upper_limit)
# p [number, 10**upper_limit, upper_limit]
low_limit = upper_limit - 1
number = number / (10**low_limit)
# p [number, 10**low_limit, low_limit]
puts "#{number} = #{s[k-1]}"
getNumberByPosition(101,150,20,3)
getNumberByPosition(101,150,21,3)
Я исправил ошибки, теперь она работает корректно, но если тебе нужно обязательно использовать if..else, то оставять коммент, я перепишу
#include <iostream>
using namespace std;
int main()
{
setlocale(0, "Rus");
int osenka; ;
cout << "Введите произвольную цифру от 2 до 5: ",
cin >> osenka;
if (osenka == 5) // Если введенная цифра равна 5.
cout << "Вы получили оценку «5» \n";
if (osenka == 4) //Если введенная цифра равна 4
cout << "Вы получили оценку «4». \n";
if (osenka == 3) //Если введенная цифра равна 3
cout << "Вы получили оценку «3». \n";
if (osenka == 2)
cout << "Вы получили оценку «2».\n";
return 0;
}
#Ruby 2
def getNumberByPosition(start_num, end_num, k, n = 3)
# p [start_num, end_num, k, n]
if not start_num.between?(10**(n - 1),10**n - 1) or not end_num.between?(10**(n - 1),10**n - 1) then return end
s = ""
for i in start_num..end_num
s += i.to_s()
end
number = start_num + (k-1) / n
if number > end_num
puts "Выход за пределы"
return
end
# p number
upper_limit = n + 1 - ((k % n == 0) ? n : k % n)
number = number % (10**upper_limit)
# p [number, 10**upper_limit, upper_limit]
low_limit = upper_limit - 1
number = number / (10**low_limit)
# p [number, 10**low_limit, low_limit]
puts "#{number} = #{s[k-1]}"
end
getNumberByPosition(101,150,20,3)
getNumberByPosition(101,150,21,3)