栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

小学算术题程序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小学算术题程序

C语言小程序

帮朋友写题的时候,遇到个这个还算比较使用的东西,我用来给我弟弟做算术训练了哈哈哈。

小学生算法程序


内容:

面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:
(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;
(2)确保算式没有超出12年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出050的范围,负数更是不允许的;
(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(5)总成绩90以上显示SMART”80-90显示“GOOD”,70-80显示OK60-70显示“PASS”,60以下“TRYAGAIN


输入部分代码如下:

int shuru(){//输入方法
    int s ;
    printf("你的答案是n");
    scanf("%d",&s);
    return s;
}

生成随机数和计算方法:
限制和为50那里处理的还是不好,本来想用循环进行数次赋值达到目的,但是始终没有显示,最后就不想做了,简单粗暴的直接除2,也满足随机数,倒是没有偏题,就是没有做到完美,,,以后有机会在完善了。

int suanfa(){//随机加减法
 int i=0;
 int sum = 0;
 int a = 0;
 int b = 0;
 char c;
 srand((int)time(NULL));
 i = rand()%2;
 a = rand()%51;
 b = rand()%51;
switch(i){
case 0:
c = '+';
sum = a + b;
if(sum>50){
a = a/2;
b= b/2;
sum = a+b;
break;

}else{
    break;//加号
}



case 1:
c = '-';
if(a
    int dex = 0;
    dex = a;
    a = b;
    b = dex;
    sum = a - b;

}else{
    sum = a - b;
}

break;//减号
default: printf("error");
   }
   printf("%d%c%dn",a,c,b);
return sum;
}

主函数如下

#include 
#include 
#include 
int main()
{
    int answer = 0;
    int s = 0;
    int s1 = 0;
    //int s2 = 0;
    int youranswer = 0;
    int score = 0;
    int j1 = 0;

    for(int i = 0;i<10;i++){
        printf("第%d题n",i+1);
         answer = suanfa();
         youranswer = shuru();
         if(youranswer==answer){
            printf("恭喜,答对了!你真聪明!n");
            score = score +10;
         }else{//用于增加两次答错机会
             for(int j = 0;j<2;j++){
                 printf("抱歉,回答错误!n");
                 printf("再试一次!n");
                 s1 = shuru();

                 if(s1==answer){
                     printf("恭喜,答对了!你真聪明!n");
                        j1 =j1+1;//作为辨别量,用于识别第一次答错后应该加的分数
                     break;
                 }
              printf("又错啦,再接再厉哦!n");
             }if(j1>0){//判断第一次答错后应该加的分数
               if(j1==1){
                score = score + 7;
               }else{
               score = score +5;
               }
             }
         } printf("你的分数是:%dn",score);

    }
    printf("最终的分数是:%dn",score);

    //判断输出内容
    if(score>=90){
        printf("SMART");

    }else{
    if(score>=80&&score<90){
       printf("GOOD");
       }else{
        if(score>=70&&score<80){
            printf("OK");
        }else{
        if(score>=60&&score<70){
            printf("PASS");
        }else{
        printf("TRY AGAIN");}
       }
    }
    }
}

程序不难,大家要是有比较好的控制50的方法,欢迎来一起留言讨论

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/957810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号