实现一个20以内的加、减、乘、除20道计算机练习测试的程序,每道题5分,总分100分。 (可能出现没有计算公式的情况)

#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int show()//定义出随机计算式,通过调用系统的时间进行随机出加减式子 
{
    int a,b,t,op,answer0;//定义,a是第一个数,b是第二个,t是用来替换a和b的值,防止出现a小于b计算为负数的情况
	//op是用来随机出加法(1)或随机出减法(2) answer0是系统计算出的正确答案,为了给后续的 判断输入是否和系统的正确答案一致。 
    srand(time(0));//先记住,这个是一个随机种子,通过提取计算机的time的值,然后让rand得到随机值,然后在后续的a,b,c,和op来赋予随机值rand。 
    a=rand()%20+1;
    b=rand()%20+1;
    op=rand()%5+1;
    switch(op)//用来将op的值来随机出加法或者减法运算。 
    {
    case 1://通过随机函数出1,来举出加法的随即运算。 
        printf("%d+%d=",a,b);
        answer0=a+b;
        break;
    case 2://通过随机函数出2,来举出减法法的随即运算。 
        if(a<b)//防止a小于b出现负数的调换。 
        {
            t=a;
            a=b;
            b=t;
        }
        printf("%d-%d=",a,b); 
            answer0=a-b;
            break;
    case 3://通过随机函数3(op),来举出除法运算。
        printf("%d/%d=",a,b);
    	answer0=a/b;
    	break;
    case 4://通过随机函数4(op) 来举出乘法运算。 
    	printf("%d*%d=",a,b);
    	answer0=a*b;
    	break;
    }
    return (answer0);//将系统得到的函数的值answer回到定义的int中。 
}
int Test(int t_answer1,int t_answer0)//定义判断出输入结果是否正确的函数(答案) 
{
    if(t_answer1==t_answer0)//定义和调用answer1和answer0的值来进行对比判断是否相同,然后输出1或者2,并在后续的定义中用来进行加分计算(个人总成绩)。 
    {
        printf("correct!\n");
        return 1;
    }
    else
    {
        printf("Not correct!\n");
        return 0;
    }
}
int main()//定义输入结果与答案是否一致。 
{
    int i,an_flag;//定义循环和总成绩判断数,来给score加分或者不加分。 
    int answer1,answer2,score=0;
    for(i=0;i<10;i++)
    {
        answer1=show();
        scanf("%d",&answer2);
        an_flag=Test(answer1,answer2);//由上面的返回值可知,an_flag来判断是否可以加10分或者不加分。 
        if(an_flag==1)
            score+=10;
    }
    printf("\nCorrect score:%d\n",score);//最终输出得到的总分,或者说总成绩。 
    return 0;
}

因为应用到整型,所以在除法运算的时候,小于1的时候,输出的answer0是0。

并且随机种子(time)不一定能随机出数,所以直接输入0即可跳过当前题目。

感谢观看。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值