c++面向过程---50以内正整数算术题

    xiaoxiao2023-10-15  26

    复杂版

    //c++实现小学生50以内正整数 算术题 #include<stdio.h> #include<time.h> #include <stdlib.h> #include<iostream> using namespace std; int score = 0; int main() { int nmber1, nmber2,addcorrect,subcorrect,ans; srand((unsigned)time(NULL)); cout << "小学生正整数 50内算术题" << endl; //10道题 for (int i = 1; i < 11; i++) { nmber1 = rand() % 50; nmber2 = rand() % 50; //随机生成0~49的数字; addcorrect = nmber1 + nmber2;//加法正确答案 subcorrect = nmber1 - nmber2;//减法正确答案 int probability = rand() % 4;//控制加法减法的概率 if (probability == 0 || probability == 1) { if (addcorrect> 50) { i = i - 1; continue;//大于50就重新出题 } //进入小于50的时候 else if (ans <= 50) { int counts; cout << "第" << i << "题" << nmber1 << "+" << nmber2 << "="; cin >> ans; //三次答题机会 for (counts = 1; counts < 4; counts++) { //正确的时候 if (ans == addcorrect) { if (counts == 1) { cout << "恭喜你答对了,本题得分10分" << endl; score = score + 10; cout << "当前总分" << score<< endl; break; } if (counts == 2) { cout << "恭喜你答对了,本题得分7分" << endl; score = score + 7; cout << "当前总分" << score << endl; break; } if (counts == 3) { cout << "恭喜你答对了,本题得分5分" << endl; score = score + 5; cout << "当前总分" << score << endl; break; } } //进入没答对的时候 else { if (counts == 1) { cout << "答错了,你还有2次机会" << endl; cout << "请重新作答" << endl; cout << "第" << i << "题" << nmber1 << "+" << nmber2 << "="; cin >> ans; continue;//重错了,终止本次循环,重新作答 } if (counts == 2) { cout << "答错了,你还有最后1次机会,请慎重作答" << endl; cout << "你的答案是:" << endl; cout << "第" << i << "题" << nmber1 << "+" << nmber2 << "="; cin >> ans; //答错了,终止本次答题,进入下一次答题机会 continue; } if (counts == 3) { cout << "机会用尽!" << endl; break;//连续三次答错,退出当前答题,进入下一题 } } } } } //进入减法 else { //结果小于0的话,重新出题 if (subcorrect< 0) { i = i - 1; continue;//t退出当前循环,重新出题; } else { int counts; cout << "第" << i << "题" << nmber1 << "-" << nmber2 << "="; cin >> ans; //三次答题机会 for (counts = 1; counts < 5; counts++) { //正确的时候 if (ans == subcorrect) { if (counts == 1) { cout << "恭喜你答对了,本题得分10分" << endl; score = score + 10; cout << "当前总分" << score << endl; break; } if (counts == 2) { cout << "恭喜你答对了,本题得分7分" << endl; score = score + 7; cout << "当前总分" << score << endl; break; } if (counts == 3) { cout << "恭喜你答对了,本题得分5分" << endl; score = score + 5; cout << "当前总分" << score << endl; break; } } //进入没答对的时候 else { if (counts == 1) { cout << "答错了,你还有2次机会" << endl; cout << "请重新作答" << endl; cout << "第" << i << "题" << nmber1 << "-" << nmber2 << "="; cin >> ans; continue; } if (counts == 2) { cout << "答错了,你还有1次机会。请慎重作答!!!" << endl; cout << "你的答案是:" << endl; cout << "第" << i << "题" << nmber1 << "-" << nmber2 << "="; cin >> ans; continue; } if (counts == 3) { cout << "机会用尽!!!" << endl; break; } } } } } } system("pause"); }

    精简版

    #include<stdio.h> #include<time.h> #include <stdlib.h> #include<iostream> using namespace std; int score = 0; int main() { //a,b是题 int a, b, c, result, t; srand((unsigned)time(NULL)); cout << "面向小学 1-2 年级学生,数学小测试" << endl; for (int i = 1; i < 11; i++)//题号 { a = rand() % 50;//0~49的随机数 b = rand() % 50; t = rand() % 6; if (t == 3 || t == 1 || t == 2) { c = a + b; if (c > 50)//判断两个数之和是否大于50 { i = i - 1; continue;//若两个数之和是否大于50,返回重新生成 } else c = a + b; cout << "第" << i << " 小题" << a << "+" << b << "="; } else { c = a - b; if (c < 0)//判断两个数之差是否小于0 { i = i - 1; continue;//若两个数之差是小于0,返回重新生成 } else c = a - b; cout << "第" << i << "小题" << a << "-" << b << "="; } int j; for ( j = 1; j < 4; j++) { cin >> result; if (result== c) break; else if (j == 1) cout << "回答错误,你还有" << 3 - j << "次机会" << endl; else if (j == 2) cout << "回答错误,你还有" << 3 - j << "次机会" << endl; else if (j == 3) cout << "正确答案是:" << c << "下一题仔细点" << endl; } //cout << j << endl; if (j == 1) { score = score + 10; cout << "本题得分:10" << endl << "当前总分是:" << score << endl; } else if (j == 2) { score = score + 7; cout << "本题得分:7" << endl << "当前总分是:" << score << endl; } else if (j == 3) { score = score + 5; cout << "本题得分:5" << endl << "当前总分是:" << score << endl; } } if (score > 90) { cout << "SMART" << endl; } else if (score > 80) { cout << "GOOD" << endl; } else if (score > 70) { cout << "OK" << endl; } else if (score > 60) { cout << "PASS" << endl; } else cout << "TRY AGAIN" << endl; system("pause"); }
    最新回复(0)