小学算术题程序

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<b){
    int dex = 0;
    dex = a;
    a = b;
    b = dex;
    sum = a - b;

}else{
    sum = a - b;
}

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

主函数如下

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
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("你的分数是:%d\n",score);

    }
    printf("最终的分数是:%d\n",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的方法,欢迎来一起留言讨论

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值