简单数学测验

题目分析

能对100以内的加减法进行测验,并且得到的结果也是100以内的数字,最重要的是这些题是随机的,随机出题之后,从电脑上输入你的答案,一共有两次机会,如果两次都回答错误,最后将会公布正确答案,该程序在菜单条件下进行运行,自定义数据和非自定义的数据类型都是整数型。

代码如下

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void showmenu()        //菜单函数 
{
 printf("*********************************************\n");
 printf("            欢迎使用数学测试系统\n");
 printf("1.开始测试\n");
 printf("2.查看分数\n");
 printf("3.退出系统\n");
 printf("*********************************************\n"); 
}
int start()        //生成的测试函数 
{
 int i,x,j,a,b,t,c,answer,score=0;//定义初始化分数为0 
 srand(time(0));        //随机种子的种下 
 for(i=1;i<=10;i++)        //循环10次,每一次对应一道题 
 {
  x=rand()%2+1;            //10道题中加减的随机生成 
  switch(x)
  {
   case 1:                //加法的生成 
    do
    {
     a=rand()%101;
     b=rand()%101;
     answer=a+b;
    }while(answer>100);        //两个数的和大于100时,重新生成其中的一个数,控制范围在0-100 
    printf("第%d题:%d+%d=",i,a,b);break;
   case 2:                    //减法的生成 
    a=rand()%101;
    do
    {
     b=rand()%101;
    }while(a<b);            //被减数小于减数,重新生成减数,控制范围在0-100  
    printf("第%d题:%d-%d=",i,a,b);
    answer=a-b;break;
  }
  for(j=1;j<=2;j++)
  {
   scanf("%d",&t);            //输入您的答案 
   if(t==answer)            //答案正确 
   {
    printf("答案正确\n");
    score=score+10;break;
   }
   else
   {
        printf("答案错误,请重新输入:\n");
        scanf("%d",&c);        //第一次答案错误,重新输入 
         if(c==answer)
           {
           printf("回答正确\n");score=score+5;}
          else 
          {
           printf("回答错误,正确的答案是:%d\n",answer);
           score=score+0;break;} 
   }
  }
 }
 return score;//计算总分数,并返回score值 
}
int main()
{
 int n,g;    //定义选项,定义分数 
 do
 {
  showmenu();    //启用菜单函数 
  printf("请输入一个序号:");
  scanf("%d",&n);
  switch(n)
  {
    case 1:g=start();break;//开始测试 
    case 2:printf("您的分数是:%d\n",g);break;//输出分数值 
    case 3:break; 
    default:printf("请输入一个正确的序号"); 
  }
 }while(n!=3);
 printf("谢谢使用简单数学测试系统"); 
 return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值