编写练习加法运算的函数int cal(int n),随机产生两个两位数,练习者通过键盘输入得数,判断对错,并将正确率返回给主函数。其中,所做题目数量n由主函数输入,当练习者输入-1作为得数时,可提前结束加法运算练习。
时间: 2024-10-29 14:20:49 浏览: 20
你可以创建一个名为`cal`的函数,用于编写这样的加法练习程序。这个函数的主要步骤如下:
```cpp
#include <iostream>
#include <cstdlib> // 需要用到rand()和srand()
#include <ctime> // 需要用到time()
// 生成0-99之间的随机整数
int generate_random_number() {
return rand() % 100;
}
// 计算并检查用户输入的加法结果
bool check_addition(int a, int b, int expected) {
int sum = a + b;
std::cout << "计算: " << a << " + " << b << " = ";
std::cin >> sum; // 用户输入
if (sum == expected) {
std::cout << "正确!" << std::endl;
return true;
} else {
std::cout << "错误,正确答案是:" << expected << std::endl;
return false;
}
}
// 主函数,负责运行加法练习并记录正确率
double run_practice(int n) {
int correct_count = 0;
srand(time(0)); // 初始化随机数种子
for (int i = 0; i < n; ++i) {
int num1 = generate_random_number();
int num2 = generate_random_number();
int expected_sum = num1 + num2;
while (true) { // 使用循环直到用户选择退出
bool is_correct = check_addition(num1, num2, expected_sum);
if (is_correct || inputted_quit(expected_sum)) break; // 输入-1时退出
correct_count++;
}
}
double accuracy = static_cast<double>(correct_count) / n * 100;
return accuracy;
}
// 判断用户是否输入了-1作为退出标志
bool inputted_quit(int expected_sum) {
int quit_input;
std::cin >> quit_input;
return quit_input == -1 && std::cin.fail();
}
int main() {
int practice_count;
std::cout << "请输入你要做的加法练习题数量: ";
std::cin >> practice_count;
double result = run_practice(practice_count);
std::cout << "您的正确率为: " << result << "%\n";
return 0;
}
```
在这个程序中,`run_practice`函数控制整个练习过程,包括生成随机数、让用户输入和检查结果。如果用户输入-1,就会提前结束练习并返回正确率。
阅读全文