Во-первых, не whill, а while. Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу. Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.
Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу.
Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
std::srand(std::time(NULL));
unsigned short int
number,
value,
_value,
correct = 0;
std::cout << "Введите число, умножение на которое будет происходить, и кол-во вопросов: ";
std::cin >> number >> value;
_value = value;
while(_value > 0)
{
unsigned int
_number,
tmp = 1 + std::rand() % 10;
std::cout << number << " * " << tmp << " = ";
std::cin >> _number;
if(_number == tmp * number)
{
std::cout << "Верно." << std::endl;
correct++;
}
_value--;
}
std::cout << "Процентное соотношение: " << 100 * (static_cast<float>(correct) / value) << "%."
<< std::endl;
}